diff options
44 files changed, 197 insertions, 2120 deletions
@@ -1,7 +1,4 @@ * use flask.instance_path to get/store configuration. See http://flask.pocoo.org/docs/config/#instance-folders -* Attach the current projec to g and modify the url_for to use it. http://flask.pocoo.org/docs/patterns/urlprocessors/ * Use class based views to factorize the code if there is some code to factorize, see http://flask.pocoo.org/docs/views/ -* Use request.args.get('next') to redirect when authenticating -* Move the flask app to __init__.py (http://flask.pocoo.org/docs/patterns/packages/) * Eventually move the url definition into a specific section * Render templates automatically using a decorator. see http://stackoverflow.com/questions/7054099/using-flask-blueprint-for-some-static-pages/7056374#7056374 diff --git a/budget/__init__.py b/budget/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/budget/__init__.py +++ /dev/null diff --git a/budget/forms.py b/budget/forms.py index fe14288..51da01f 100644 --- a/budget/forms.py +++ b/budget/forms.py @@ -7,14 +7,13 @@ from datetime import datetime def select_multi_checkbox(field, ul_class='', **kwargs): kwargs.setdefault('type', 'checkbox') field_id = kwargs.pop('id', field.id) - html = [u'<ul %s>' % html_params(id=field_id, class_=ul_class)] + html = [u'<ul %s>' % html_params(id=field_id, class_="inputs-list")] for value, label, checked in field.iter_choices(): choice_id = u'%s-%s' % (field_id, value) options = dict(kwargs, name=field.name, value=value, id=choice_id) if checked: options['checked'] = 'checked' - html.append(u'<li><input %s /> ' % html_params(**options)) - html.append(u'<label for="%s">%s</label></li>' % (choice_id, label)) + html.append(u'<li><label for="%s">%s<span>%s</span></label></li>' % (choice_id, '<input %s /> ' % html_params(**options), label)) html.append(u'</ul>') return u''.join(html) diff --git a/budget/static/awesome/awesome-buttons.css b/budget/static/awesome/awesome-buttons.css deleted file mode 100644 index 7b38e13..0000000 --- a/budget/static/awesome/awesome-buttons.css +++ /dev/null @@ -1,106 +0,0 @@ -/* - awesome buttons are based on a blog post by ZERB - Read there blog post for more information: - "Super awesome Buttons with CSS3 and RGBA":http://www.zurb.com/article/266/super-awesome-buttons-with-css3-and-rgba - - this buttons are even more awesome, as the need only one color for all three states, - and have an super awesome onclick state -*/ - -/* set an awesome color for the buttons, feel free to add new colors like an .awesome.green or .awesome.secondary */ -.awesome { - background-color: #111 !important; - color: #fff !important; -} - -/* the awesome size gets set here. Feel Free to add new sizes, like .awesome.small or .small.large */ -.awesome { padding: 5px 10px 6px !important; font-size: 13px !important; } -.awesome:active { padding: 6px 10px 5px !important; } - -/* Touch the rest at your onw risk. */ -.awesome { - border: 0 !important; - cursor: pointer !important; - font-style: normal !important; - font-weight: bold !important; - font: inherit !important; - line-height: 1 !important; - position: relative !important; - text-align: cente !important; - text-decoration: none !important; - - /* vertical margin is the oposite of button's awesomeness */ - margin-top: 0 !important; - margin-bottom: 0 !important; - - /* not all browser support these, but who cares? */ - text-shadow: 0 -1px 1px rgba(0,0,0,0.25), -2px 0 1px rgba(0,0,0,0.25) !important; - - border-radius: 5px !important; - -moz-border-radius: 5px !important; - -webkit-border-radius: 5px !important; - box-shadow: 0 1px 2px rgba(0,0,0,0.5) !important; - -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.5) !important; - -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.5) !important; - - /* who needs images these days? */ - background-image: -moz-linear-gradient(top, rgba(255,255,255,.2), rgba(150,150,150,.2), rgba(0,0,0,.0)) !important; - background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,.2)), color-stop(0.5, rgba(150,150,150,.2)), to(rgba(0,0,0,.0))) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#30ffffff,endColorstr=#10000000) progid:DXImageTransform.Microsoft.Shadow(color=#000000,direction=135,strength=2); - - /* cross browser inline block hack - see http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/ */ - display: -moz-inline-stack; - display: inline-block; - vertical-align: middle !important; - *display: inline !important; - position: relative; - - /* IE luv */ - zoom: 1; - - /*disable text selection (Firefox only)*/ - -moz-user-select: none; -} - -/* OPERA only - if there is no border set, Opera shows a transparent background-color if border-radius is set. */ -@media all and (-webkit-min-device-pixel-ratio:10000),not all and (-webkit-min-device-pixel-ratio:0) { - input.awesome { - border: 1px solid RGBa(0,0,0,0) !important; - } -} - -/* hide selection background color */ -.awesome::selection { - background: transparent; -} - -.awesome { - outline: 0; /*remove dotted line, works for links only*/ -} -.awesome::-moz-focus-inner { - border: none; /* remove dotted lines for buttons */ -} -.awesome:focus, -.awesome:hover { - background-image: -moz-linear-gradient(top, rgba(255,255,255,.4), rgba(150,150,150,.3), rgba(0,0,0,.0)) !important; - background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,.4)), color-stop(0.5, rgba(150,150,150,.3)), to(rgba(0,0,0,.0))) !important; - #filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#50ffffff,endColorstr=#20000000) progid:DXImageTransform.Microsoft.Shadow(color=#000000,direction=135,strength=2); -} -.awesome:active { - background-image: -moz-linear-gradient(top, rgba(0,0,0,.2), rgba(150,150,150,.2), rgba(255,255,255,.2)) !important; - background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(0,0,0,.2)), color-stop(0.5, rgba(150,150,150,.2)), to(rgba(255,255,255,.2))) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#20000000,endColorstr=#50ffffff) progid:DXImageTransform.Microsoft.Shadow(color=#000000,direction=315,strength=1); - - box-shadow: inset 0 1px 2px rgba(0,0,0,0.7) !important; - -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,0.7) !important; - -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.7) !important; -} - -/* Safari doesn't support inset box shadow, so we better remove it */ -@media screen and (-webkit-min-device-pixel-ratio:0){ - .awesome:active { - -webkit-box-shadow: none; - } -}
\ No newline at end of file diff --git a/budget/static/awesome/awesome.css b/budget/static/awesome/awesome.css deleted file mode 100644 index 47c624a..0000000 --- a/budget/static/awesome/awesome.css +++ /dev/null @@ -1,29 +0,0 @@ -@import url('awesome-buttons.css'); - -/* awesome buttons extensions */ -.awesome.blue { - background-color: #0A50FF !important; -} -.awesome.red { - background-color: #e33100 !important; -} -.awesome.green { - background-color: #3ACC00 !important; -} -.awesome.orange { - background-color: #ff8f0b !important; -} -.awesome.small { - padding: 4px 7px 5px !important; - font-size: 10px !important; -} -.awesome.small:active { - padding: 5px 7px 4px !important; -} -.awesome.large { - padding: 8px 14px 9px !important; - font-size: 14px !important; -} -.awesome.large:active { - padding: 9px 14px 8px !important; -} diff --git a/budget/static/blueprint/ie.css b/budget/static/blueprint/ie.css deleted file mode 100644 index 61a5371..0000000 --- a/budget/static/blueprint/ie.css +++ /dev/null @@ -1,36 +0,0 @@ -/* ----------------------------------------------------------------------- - - - Blueprint CSS Framework 1.0 - http://blueprintcss.org - - * Copyright (c) 2007-Present. See LICENSE for more info. - * See README for instructions on how to use Blueprint. - * For credits and origins, see AUTHORS. - * This is a compressed file. See the sources in the 'src' directory. - ------------------------------------------------------------------------ */ - -/* ie.css */ -body {text-align:center;} -.container {text-align:left;} -* html .column, * html .span-1, * html .span-2, * html .span-3, * html .span-4, * html .span-5, * html .span-6, * html .span-7, * html .span-8, * html .span-9, * html .span-10, * html .span-11, * html .span-12, * html .span-13, * html .span-14, * html .span-15, * html .span-16, * html .span-17, * html .span-18, * html .span-19, * html .span-20, * html .span-21, * html .span-22, * html .span-23, * html .span-24 {display:inline;overflow-x:hidden;} -* html legend {margin:0px -8px 16px 0;padding:0;} -sup {vertical-align:text-top;} -sub {vertical-align:text-bottom;} -html>body p code {*white-space:normal;} -hr {margin:-8px auto 11px;} -img {-ms-interpolation-mode:bicubic;} -.clearfix, .container {display:inline-block;} -* html .clearfix, * html .container {height:1%;} -fieldset {padding-top:0;} -legend {margin-top:-0.2em;margin-bottom:1em;margin-left:-0.5em;} -textarea {overflow:auto;} -label {vertical-align:middle;position:relative;top:-0.25em;} -input.text, input.title, textarea {background-color:#fff;border:1px solid #bbb;} -input.text:focus, input.title:focus {border-color:#666;} -input.text, input.title, textarea, select {margin:0.5em 0;} -input.checkbox, input.radio {position:relative;top:.25em;} -form.inline div, form.inline p {vertical-align:middle;} -form.inline input.checkbox, form.inline input.radio, form.inline input.button, form.inline button {margin:0.5em 0;} -button, input.button {position:relative;top:0.25em;}
\ No newline at end of file diff --git a/budget/static/blueprint/plugins/buttons/icons/cross.png b/budget/static/blueprint/plugins/buttons/icons/cross.png Binary files differdeleted file mode 100755 index 1514d51..0000000 --- a/budget/static/blueprint/plugins/buttons/icons/cross.png +++ /dev/null diff --git a/budget/static/blueprint/plugins/buttons/icons/key.png b/budget/static/blueprint/plugins/buttons/icons/key.png Binary files differdeleted file mode 100755 index a9d5e4f..0000000 --- a/budget/static/blueprint/plugins/buttons/icons/key.png +++ /dev/null diff --git a/budget/static/blueprint/plugins/buttons/icons/tick.png b/budget/static/blueprint/plugins/buttons/icons/tick.png Binary files differdeleted file mode 100755 index a9925a0..0000000 --- a/budget/static/blueprint/plugins/buttons/icons/tick.png +++ /dev/null diff --git a/budget/static/blueprint/plugins/buttons/readme.txt b/budget/static/blueprint/plugins/buttons/readme.txt deleted file mode 100644 index aa9fe26..0000000 --- a/budget/static/blueprint/plugins/buttons/readme.txt +++ /dev/null @@ -1,32 +0,0 @@ -Buttons - -* Gives you great looking CSS buttons, for both <a> and <button>. -* Demo: particletree.com/features/rediscovering-the-button-element - - -Credits ----------------------------------------------------------------- - -* Created by Kevin Hale [particletree.com] -* Adapted for Blueprint by Olav Bjorkoy [bjorkoy.com] - - -Usage ----------------------------------------------------------------- - -1) Add this plugin to lib/settings.yml. - See compress.rb for instructions. - -2) Use the following HTML code to place the buttons on your site: - - <button type="submit" class="button positive"> - <img src="css/blueprint/plugins/buttons/icons/tick.png" alt=""/> Save - </button> - - <a class="button" href="/password/reset/"> - <img src="css/blueprint/plugins/buttons/icons/key.png" alt=""/> Change Password - </a> - - <a href="#" class="button negative"> - <img src="css/blueprint/plugins/buttons/icons/cross.png" alt=""/> Cancel - </a> diff --git a/budget/static/blueprint/plugins/buttons/screen.css b/budget/static/blueprint/plugins/buttons/screen.css deleted file mode 100644 index bb66b21..0000000 --- a/budget/static/blueprint/plugins/buttons/screen.css +++ /dev/null @@ -1,97 +0,0 @@ -/* -------------------------------------------------------------- - - buttons.css - * Gives you some great CSS-only buttons. - - Created by Kevin Hale [particletree.com] - * particletree.com/features/rediscovering-the-button-element - - See Readme.txt in this folder for instructions. - --------------------------------------------------------------- */ - -a.button, button { - display:block; - float:left; - margin: 0.7em 0.5em 0.7em 0; - padding:5px 10px 5px 7px; /* Links */ - - border:1px solid #dedede; - border-top:1px solid #eee; - border-left:1px solid #eee; - - background-color:#f5f5f5; - font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif; - font-size:100%; - line-height:130%; - text-decoration:none; - font-weight:bold; - color:#565656; - cursor:pointer; -} -button { - width:auto; - overflow:visible; - padding:4px 10px 3px 7px; /* IE6 */ -} -button[type] { - padding:4px 10px 4px 7px; /* Firefox */ - line-height:17px; /* Safari */ -} -*:first-child+html button[type] { - padding:4px 10px 3px 7px; /* IE7 */ -} -button img, a.button img{ - margin:0 3px -3px 0 !important; - padding:0; - border:none; - width:16px; - height:16px; - float:none; -} - - -/* Button colors --------------------------------------------------------------- */ - -/* Standard */ -button:hover, a.button:hover{ - background-color:#dff4ff; - border:1px solid #c2e1ef; - color:#336699; -} -a.button:active{ - background-color:#6299c5; - border:1px solid #6299c5; - color:#fff; -} - -/* Positive */ -body .positive { - color:#529214; -} -a.positive:hover, button.positive:hover { - background-color:#E6EFC2; - border:1px solid #C6D880; - color:#529214; -} -a.positive:active { - background-color:#529214; - border:1px solid #529214; - color:#fff; -} - -/* Negative */ -body .negative { - color:#d12f19; -} -a.negative:hover, button.negative:hover { - background-color:#fbe3e4; - border:1px solid #fbc2c4; - color:#d12f19; -} -a.negative:active { - background-color:#d12f19; - border:1px solid #d12f19; - color:#fff; -} diff --git a/budget/static/blueprint/plugins/fancy-type/readme.txt b/budget/static/blueprint/plugins/fancy-type/readme.txt deleted file mode 100644 index 85f2491..0000000 --- a/budget/static/blueprint/plugins/fancy-type/readme.txt +++ /dev/null @@ -1,14 +0,0 @@ -Fancy Type - -* Gives you classes to use if you'd like some - extra fancy typography. - -Credits and instructions are specified above each class -in the fancy-type.css file in this directory. - - -Usage ----------------------------------------------------------------- - -1) Add this plugin to lib/settings.yml. - See compress.rb for instructions. diff --git a/budget/static/blueprint/plugins/fancy-type/screen.css b/budget/static/blueprint/plugins/fancy-type/screen.css deleted file mode 100644 index 68994d8..0000000 --- a/budget/static/blueprint/plugins/fancy-type/screen.css +++ /dev/null @@ -1,71 +0,0 @@ -/* -------------------------------------------------------------- - - fancy-type.css - * Lots of pretty advanced classes for manipulating text. - - See the Readme file in this folder for additional instructions. - --------------------------------------------------------------- */ - -/* Indentation instead of line shifts for sibling paragraphs. */ - p + p { text-indent:2em; margin-top:-1.5em; } - form p + p { text-indent: 0; } /* Don't want this in forms. */ - - -/* For great looking type, use this code instead of asdf: - <span class="alt">asdf</span> - Best used on prepositions and ampersands. */ - -.alt { - color: #666; - font-family: "Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua", Georgia, serif; - font-style: italic; - font-weight: normal; -} - - -/* For great looking quote marks in titles, replace "asdf" with: - <span class="dquo">“</span>asdf” - (That is, when the title starts with a quote mark). - (You may have to change this value depending on your font size). */ - -.dquo { margin-left: -.5em; } - - -/* Reduced size type with incremental leading - (http://www.markboulton.co.uk/journal/comments/incremental_leading/) - - This could be used for side notes. For smaller type, you don't necessarily want to - follow the 1.5x vertical rhythm -- the line-height is too much. - - Using this class, it reduces your font size and line-height so that for - every four lines of normal sized type, there is five lines of the sidenote. eg: - - New type size in em's: - 10px (wanted side note size) / 12px (existing base size) = 0.8333 (new type size in ems) - - New line-height value: - 12px x 1.5 = 18px (old line-height) - 18px x 4 = 72px - 72px / 5 = 14.4px (new line height) - 14.4px / 10px = 1.44 (new line height in em's) */ - -p.incr, .incr p { - font-size: 10px; - line-height: 1.44em; - margin-bottom: 1.5em; -} - - -/* Surround uppercase words and abbreviations with this class. - Based on work by Jørgen Arnor Gårdsø Lom [http://twistedintellect.com/] */ - -.caps { - font-variant: small-caps; - letter-spacing: 1px; - text-transform: lowercase; - font-size:1.2em; - line-height:1%; - font-weight:bold; - padding:0 2px; -} diff --git a/budget/static/blueprint/plugins/link-icons/icons/doc.png b/budget/static/blueprint/plugins/link-icons/icons/doc.png Binary files differdeleted file mode 100644 index 834cdfa..0000000 --- a/budget/static/blueprint/plugins/link-icons/icons/doc.png +++ /dev/null diff --git a/budget/static/blueprint/plugins/link-icons/icons/email.png b/budget/static/blueprint/plugins/link-icons/icons/email.png Binary files differdeleted file mode 100644 index 7348aed..0000000 --- a/budget/static/blueprint/plugins/link-icons/icons/email.png +++ /dev/null diff --git a/budget/static/blueprint/plugins/link-icons/icons/external.png b/budget/static/blueprint/plugins/link-icons/icons/external.png Binary files differdeleted file mode 100644 index cf1cfb4..0000000 --- a/budget/static/blueprint/plugins/link-icons/icons/external.png +++ /dev/null diff --git a/budget/static/blueprint/plugins/link-icons/icons/feed.png b/budget/static/blueprint/plugins/link-icons/icons/feed.png Binary files differdeleted file mode 100644 index 315c4f4..0000000 --- a/budget/static/blueprint/plugins/link-icons/icons/feed.png +++ /dev/null diff --git a/budget/static/blueprint/plugins/link-icons/icons/im.png b/budget/static/blueprint/plugins/link-icons/icons/im.png Binary files differdeleted file mode 100644 index 79f35cc..0000000 --- a/budget/static/blueprint/plugins/link-icons/icons/im.png +++ /dev/null diff --git a/budget/static/blueprint/plugins/link-icons/icons/pdf.png b/budget/static/blueprint/plugins/link-icons/icons/pdf.png Binary files differdeleted file mode 100644 index 8f8095e..0000000 --- a/budget/static/blueprint/plugins/link-icons/icons/pdf.png +++ /dev/null diff --git a/budget/static/blueprint/plugins/link-icons/icons/visited.png b/budget/static/blueprint/plugins/link-icons/icons/visited.png Binary files differdeleted file mode 100644 index ebf206d..0000000 --- a/budget/static/blueprint/plugins/link-icons/icons/visited.png +++ /dev/null diff --git a/budget/static/blueprint/plugins/link-icons/icons/xls.png b/budget/static/blueprint/plugins/link-icons/icons/xls.png Binary files differdeleted file mode 100644 index b977d7e..0000000 --- a/budget/static/blueprint/plugins/link-icons/icons/xls.png +++ /dev/null diff --git a/budget/static/blueprint/plugins/link-icons/readme.txt b/budget/static/blueprint/plugins/link-icons/readme.txt deleted file mode 100644 index fc4dc64..0000000 --- a/budget/static/blueprint/plugins/link-icons/readme.txt +++ /dev/null @@ -1,18 +0,0 @@ -Link Icons -* Icons for links based on protocol or file type. - -This is not supported in IE versions < 7. - - -Credits ----------------------------------------------------------------- - -* Marc Morgan -* Olav Bjorkoy [bjorkoy.com] - - -Usage ----------------------------------------------------------------- - -1) Add this line to your HTML: - <link rel="stylesheet" href="css/blueprint/plugins/link-icons/screen.css" type="text/css" media="screen, projection"> diff --git a/budget/static/blueprint/plugins/link-icons/screen.css b/budget/static/blueprint/plugins/link-icons/screen.css deleted file mode 100644 index 7b4bef9..0000000 --- a/budget/static/blueprint/plugins/link-icons/screen.css +++ /dev/null @@ -1,40 +0,0 @@ -/* -------------------------------------------------------------- - - link-icons.css - * Icons for links based on protocol or file type. - - See the Readme file in this folder for additional instructions. - --------------------------------------------------------------- */ - -/* Use this class if a link gets an icon when it shouldn't. */ -body a.noicon { - background:transparent none !important; - padding:0 !important; - margin:0 !important; -} - -/* Make sure the icons are not cut */ -a[href^="http:"], a[href^="mailto:"], a[href^="http:"]:visited, -a[href$=".pdf"], a[href$=".doc"], a[href$=".xls"], a[href$=".rss"], -a[href$=".rdf"], a[href^="aim:"] { - padding:2px 22px 2px 0; - margin:-2px 0; - background-repeat: no-repeat; - background-position: right center; -} - -/* External links */ -a[href^="http:"] { background-image: url(icons/external.png); } -a[href^="mailto:"] { background-image: url(icons/email.png); } -a[href^="http:"]:visited { background-image: url(icons/visited.png); } - -/* Files */ -a[href$=".pdf"] { background-image: url(icons/pdf.png); } -a[href$=".doc"] { background-image: url(icons/doc.png); } -a[href$=".xls"] { background-image: url(icons/xls.png); } - -/* Misc */ -a[href$=".rss"], -a[href$=".rdf"] { background-image: url(icons/feed.png); } -a[href^="aim:"] { background-image: url(icons/im.png); } diff --git a/budget/static/blueprint/plugins/rtl/readme.txt b/budget/static/blueprint/plugins/rtl/readme.txt deleted file mode 100644 index 5564c40..0000000 --- a/budget/static/blueprint/plugins/rtl/readme.txt +++ /dev/null @@ -1,10 +0,0 @@ -RTL -* Mirrors Blueprint, so it can be used with Right-to-Left languages. - -By Ran Yaniv Hartstein, ranh.co.il - -Usage ----------------------------------------------------------------- - -1) Add this line to your HTML: - <link rel="stylesheet" href="css/blueprint/plugins/rtl/screen.css" type="text/css" media="screen, projection"> diff --git a/budget/static/blueprint/plugins/rtl/screen.css b/budget/static/blueprint/plugins/rtl/screen.css deleted file mode 100644 index 7db7eb5..0000000 --- a/budget/static/blueprint/plugins/rtl/screen.css +++ /dev/null @@ -1,110 +0,0 @@ -/* -------------------------------------------------------------- - - rtl.css - * Mirrors Blueprint for left-to-right languages - - By Ran Yaniv Hartstein [ranh.co.il] - --------------------------------------------------------------- */ - -body .container { direction: rtl; } -body .column, body .span-1, body .span-2, body .span-3, body .span-4, body .span-5, body .span-6, body .span-7, body .span-8, body .span-9, body .span-10, body .span-11, body .span-12, body .span-13, body .span-14, body .span-15, body .span-16, body .span-17, body .span-18, body .span-19, body .span-20, body .span-21, body .span-22, body .span-23, body .span-24 { - float: right; - margin-right: 0; - margin-left: 10px; - text-align:right; -} - -body div.last { margin-left: 0; } -body table .last { padding-left: 0; } - -body .append-1 { padding-right: 0; padding-left: 40px; } -body .append-2 { padding-right: 0; padding-left: 80px; } -body .append-3 { padding-right: 0; padding-left: 120px; } -body .append-4 { padding-right: 0; padding-left: 160px; } -body .append-5 { padding-right: 0; padding-left: 200px; } -body .append-6 { padding-right: 0; padding-left: 240px; } -body .append-7 { padding-right: 0; padding-left: 280px; } -body .append-8 { padding-right: 0; padding-left: 320px; } -body .append-9 { padding-right: 0; padding-left: 360px; } -body .append-10 { padding-right: 0; padding-left: 400px; } -body .append-11 { padding-right: 0; padding-left: 440px; } -body .append-12 { padding-right: 0; padding-left: 480px; } -body .append-13 { padding-right: 0; padding-left: 520px; } -body .append-14 { padding-right: 0; padding-left: 560px; } -body .append-15 { padding-right: 0; padding-left: 600px; } -body .append-16 { padding-right: 0; padding-left: 640px; } -body .append-17 { padding-right: 0; padding-left: 680px; } -body .append-18 { padding-right: 0; padding-left: 720px; } -body .append-19 { padding-right: 0; padding-left: 760px; } -body .append-20 { padding-right: 0; padding-left: 800px; } -body .append-21 { padding-right: 0; padding-left: 840px; } -body .append-22 { padding-right: 0; padding-left: 880px; } -body .append-23 { padding-right: 0; padding-left: 920px; } - -body .prepend-1 { padding-left: 0; padding-right: 40px; } -body .prepend-2 { padding-left: 0; padding-right: 80px; } -body .prepend-3 { padding-left: 0; padding-right: 120px; } -body .prepend-4 { padding-left: 0; padding-right: 160px; } -body .prepend-5 { padding-left: 0; padding-right: 200px; } -body .prepend-6 { padding-left: 0; padding-right: 240px; } -body .prepend-7 { padding-left: 0; padding-right: 280px; } -body .prepend-8 { padding-left: 0; padding-right: 320px; } -body .prepend-9 { padding-left: 0; padding-right: 360px; } -body .prepend-10 { padding-left: 0; padding-right: 400px; } -body .prepend-11 { padding-left: 0; padding-right: 440px; } -body .prepend-12 { padding-left: 0; padding-right: 480px; } -body .prepend-13 { padding-left: 0; padding-right: 520px; } -body .prepend-14 { padding-left: 0; padding-right: 560px; } -body .prepend-15 { padding-left: 0; padding-right: 600px; } -body .prepend-16 { padding-left: 0; padding-right: 640px; } -body .prepend-17 { padding-left: 0; padding-right: 680px; } -body .prepend-18 { padding-left: 0; padding-right: 720px; } -body .prepend-19 { padding-left: 0; padding-right: 760px; } -body .prepend-20 { padding-left: 0; padding-right: 800px; } -body .prepend-21 { padding-left: 0; padding-right: 840px; } -body .prepend-22 { padding-left: 0; padding-right: 880px; } -body .prepend-23 { padding-left: 0; padding-right: 920px; } - -body .border { - padding-right: 0; - padding-left: 4px; - margin-right: 0; - margin-left: 5px; - border-right: none; - border-left: 1px solid #eee; -} - -body .colborder { - padding-right: 0; - padding-left: 24px; - margin-right: 0; - margin-left: 25px; - border-right: none; - border-left: 1px solid #eee; -} - -body .pull-1 { margin-left: 0; margin-right: -40px; } -body .pull-2 { margin-left: 0; margin-right: -80px; } -body .pull-3 { margin-left: 0; margin-right: -120px; } -body .pull-4 { margin-left: 0; margin-right: -160px; } - -body .push-0 { margin: 0 18px 0 0; } -body .push-1 { margin: 0 18px 0 -40px; } -body .push-2 { margin: 0 18px 0 -80px; } -body .push-3 { margin: 0 18px 0 -120px; } -body .push-4 { margin: 0 18px 0 -160px; } -body .push-0, body .push-1, body .push-2, -body .push-3, body .push-4 { float: left; } - - -/* Typography with RTL support */ -body h1,body h2,body h3, -body h4,body h5,body h6 { font-family: Arial, sans-serif; } -html body { font-family: Arial, sans-serif; } -body pre,body code,body tt { font-family: monospace; } - -/* Mirror floats and margins on typographic elements */ -body p img { float: right; margin: 1.5em 0 1.5em 1.5em; } -body dd, body ul, body ol { margin-left: 0; margin-right: 1.5em;} -body td, body th { text-align:right; } diff --git a/budget/static/blueprint/print.css b/budget/static/blueprint/print.css deleted file mode 100644 index fe2e089..0000000 --- a/budget/static/blueprint/print.css +++ /dev/null @@ -1,29 +0,0 @@ -/* ----------------------------------------------------------------------- - - - Blueprint CSS Framework 1.0 - http://blueprintcss.org - - * Copyright (c) 2007-Present. See LICENSE for more info. - * See README for instructions on how to use Blueprint. - * For credits and origins, see AUTHORS. - * This is a compressed file. See the sources in the 'src' directory. - ------------------------------------------------------------------------ */ - -/* print.css */ -body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;} -.container {background:none;} -hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;} -hr.space {background:#fff;color:#fff;visibility:hidden;} -h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;} -code {font:.9em "Courier New", Monaco, Courier, monospace;} -a img {border:none;} -p img.top {margin-top:0;} -blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;} -.small {font-size:.9em;} -.large {font-size:1.1em;} -.quiet {color:#999;} -.hide {display:none;} -a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;} -a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;}
\ No newline at end of file diff --git a/budget/static/blueprint/screen.css b/budget/static/blueprint/screen.css deleted file mode 100644 index 58f53aa..0000000 --- a/budget/static/blueprint/screen.css +++ /dev/null @@ -1,265 +0,0 @@ -/* ----------------------------------------------------------------------- - - - Blueprint CSS Framework 1.0 - http://blueprintcss.org - - * Copyright (c) 2007-Present. See LICENSE for more info. - * See README for instructions on how to use Blueprint. - * For credits and origins, see AUTHORS. - * This is a compressed file. See the sources in the 'src' directory. - ------------------------------------------------------------------------ */ - -/* reset.css */ -html {margin:0;padding:0;border:0;} -body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;} -article, aside, dialog, figure, footer, header, hgroup, nav, section {display:block;} -body {line-height:1.5;background:white;} -table {border-collapse:separate;border-spacing:0;} -caption, th, td {text-align:left;font-weight:normal;float:none !important;} -table, th, td {vertical-align:middle;} -blockquote:before, blockquote:after, q:before, q:after {content:'';} -blockquote, q {quotes:"" "";} -a img {border:none;} -:focus {outline:0;} - -/* typography.css */ -html {font-size:100.01%;} -body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;} -h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;} -h1 {font-size:3em;line-height:1;margin-bottom:0.5em;} -h2 {font-size:2em;margin-bottom:0.75em;} -h3 {font-size:1.5em;line-height:1;margin-bottom:1em;} -h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;} -h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;} -h6 {font-size:1em;font-weight:bold;} -h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;} -p {margin:0 0 1.5em;} -.left {float:left !important;} -p .left {margin:1.5em 1.5em 1.5em 0;padding:0;} -.right {float:right !important;} -p .right {margin:1.5em 0 1.5em 1.5em;padding:0;} -a:focus, a:hover {color:#09f;} -a {color:#06c;text-decoration:underline;} -blockquote {margin:1.5em;color:#666;font-style:italic;} -strong, dfn {font-weight:bold;} -em, dfn {font-style:italic;} -sup, sub {line-height:0;} -abbr, acronym {border-bottom:1px dotted #666;} -address {margin:0 0 1.5em;font-style:italic;} -del {color:#666;} -pre {margin:1.5em 0;white-space:pre;} -pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;} -li ul, li ol {margin:0;} -ul, ol {margin:0 1.5em 1.5em 0;padding-left:1.5em;} -ul {list-style-type:disc;} -ol {list-style-type:decimal;} -dl {margin:0 0 1.5em 0;} -dl dt {font-weight:bold;} -dd {margin-left:1.5em;} -table {margin-bottom:1.4em;width:100%;} -th {font-weight:bold;} -thead th {background:#c3d9ff;} -th, td, caption {padding:4px 10px 4px 5px;} -tbody tr:nth-child(even) td, tbody tr.even td {background:#e5ecf9;} -tfoot {font-style:italic;} -caption {background:#eee;} -.small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;} -.large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;} -.hide {display:none;} -.quiet {color:#666;} -.loud {color:#000;} -.highlight {background:#ff0;} -.added {background:#060;color:#fff;} -.removed {background:#900;color:#fff;} -.first {margin-left:0;padding-left:0;} -.last {margin-right:0;padding-right:0;} -.top {margin-top:0;padding-top:0;} -.bottom {margin-bottom:0;padding-bottom:0;} - -/* forms.css */ -label {font-weight:bold;} -fieldset {padding:0 1.4em 1.4em 1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;} -legend {font-weight:bold;font-size:1.2em;margin-top:-0.2em;margin-bottom:1em;} -fieldset, #IE8#HACK {padding-top:1.4em;} -legend, #IE8#HACK {margin-top:0;margin-bottom:0;} -input[type=text], input[type=password], input.text, input.title, textarea {background-color:#fff;border:1px solid #bbb;} -input[type=text]:focus, input[type=password]:focus, input.text:focus, input.title:focus, textarea:focus {border-color:#666;} -select {background-color:#fff;border-width:1px;border-style:solid;} -input[type=text], input[type=password], input.text, input.title, textarea, select {margin:0.5em 0;} -input.text, input.title {width:300px;padding:5px;} -input.title {font-size:1.5em;} -textarea {width:390px;height:250px;padding:5px;} -form.inline {line-height:3;} -form.inline p {margin-bottom:0;} -.error, .alert, .notice, .success, .info {padding:0.8em;margin-bottom:1em;border:2px solid #ddd;} -.error, .alert {background:#fbe3e4;color:#8a1f11;border-color:#fbc2c4;} -.notice {background:#fff6bf;color:#514721;border-color:#ffd324;} -.success {background:#e6efc2;color:#264409;border-color:#c6d880;} -.info {background:#d5edf8;color:#205791;border-color:#92cae4;} -.error a, .alert a {color:#8a1f11;} -.notice a {color:#514721;} -.success a {color:#264409;} -.info a {color:#205791;} - -/* grid.css */ -.container {width:950px;margin:0 auto;} -.showgrid {background:url(src/grid.png);} -.column, .span-1, .span-2, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-9, .span-10, .span-11, .span-12, .span-13, .span-14, .span-15, .span-16, .span-17, .span-18, .span-19, .span-20, .span-21, .span-22, .span-23, .span-24 {float:left;margin-right:10px;} -.last {margin-right:0;} -.span-1 {width:30px;} -.span-2 {width:70px;} -.span-3 {width:110px;} -.span-4 {width:150px;} -.span-5 {width:190px;} -.span-6 {width:230px;} -.span-7 {width:270px;} -.span-8 {width:310px;} -.span-9 {width:350px;} -.span-10 {width:390px;} -.span-11 {width:430px;} -.span-12 {width:470px;} -.span-13 {width:510px;} -.span-14 {width:550px;} -.span-15 {width:590px;} -.span-16 {width:630px;} -.span-17 {width:670px;} -.span-18 {width:710px;} -.span-19 {width:750px;} -.span-20 {width:790px;} -.span-21 {width:830px;} -.span-22 {width:870px;} -.span-23 {width:910px;} -.span-24 {width:950px;margin-right:0;} -input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 {border-left-width:1px;border-right-width:1px;padding-left:5px;padding-right:5px;} -input.span-1, textarea.span-1 {width:18px;} -input.span-2, textarea.span-2 {width:58px;} -input.span-3, textarea.span-3 {width:98px;} -input.span-4, textarea.span-4 {width:138px;} -input.span-5, textarea.span-5 {width:178px;} -input.span-6, textarea.span-6 {width:218px;} -input.span-7, textarea.span-7 {width:258px;} -input.span-8, textarea.span-8 {width:298px;} -input.span-9, textarea.span-9 {width:338px;} -input.span-10, textarea.span-10 {width:378px;} -input.span-11, textarea.span-11 {width:418px;} -input.span-12, textarea.span-12 {width:458px;} -input.span-13, textarea.span-13 {width:498px;} -input.span-14, textarea.span-14 {width:538px;} -input.span-15, textarea.span-15 {width:578px;} -input.span-16, textarea.span-16 {width:618px;} -input.span-17, textarea.span-17 {width:658px;} -input.span-18, textarea.span-18 {width:698px;} -input.span-19, textarea.span-19 {width:738px;} -input.span-20, textarea.span-20 {width:778px;} -input.span-21, textarea.span-21 {width:818px;} -input.span-22, textarea.span-22 {width:858px;} -input.span-23, textarea.span-23 {width:898px;} -input.span-24, textarea.span-24 {width:938px;} -.append-1 {padding-right:40px;} -.append-2 {padding-right:80px;} -.append-3 {padding-right:120px;} -.append-4 {padding-right:160px;} -.append-5 {padding-right:200px;} -.append-6 {padding-right:240px;} -.append-7 {padding-right:280px;} -.append-8 {padding-right:320px;} -.append-9 {padding-right:360px;} -.append-10 {padding-right:400px;} -.append-11 {padding-right:440px;} -.append-12 {padding-right:480px;} -.append-13 {padding-right:520px;} -.append-14 {padding-right:560px;} -.append-15 {padding-right:600px;} -.append-16 {padding-right:640px;} -.append-17 {padding-right:680px;} -.append-18 {padding-right:720px;} -.append-19 {padding-right:760px;} -.append-20 {padding-right:800px;} -.append-21 {padding-right:840px;} -.append-22 {padding-right:880px;} -.append-23 {padding-right:920px;} -.prepend-1 {padding-left:40px;} -.prepend-2 {padding-left:80px;} -.prepend-3 {padding-left:120px;} -.prepend-4 {padding-left:160px;} -.prepend-5 {padding-left:200px;} -.prepend-6 {padding-left:240px;} -.prepend-7 {padding-left:280px;} -.prepend-8 {padding-left:320px;} -.prepend-9 {padding-left:360px;} -.prepend-10 {padding-left:400px;} -.prepend-11 {padding-left:440px;} -.prepend-12 {padding-left:480px;} -.prepend-13 {padding-left:520px;} -.prepend-14 {padding-left:560px;} -.prepend-15 {padding-left:600px;} -.prepend-16 {padding-left:640px;} -.prepend-17 {padding-left:680px;} -.prepend-18 {padding-left:720px;} -.prepend-19 {padding-left:760px;} -.prepend-20 {padding-left:800px;} -.prepend-21 {padding-left:840px;} -.prepend-22 {padding-left:880px;} -.prepend-23 {padding-left:920px;} -.border {padding-right:4px;margin-right:5px;border-right:1px solid #ddd;} -.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #ddd;} -.pull-1 {margin-left:-40px;} -.pull-2 {margin-left:-80px;} -.pull-3 {margin-left:-120px;} -.pull-4 {margin-left:-160px;} -.pull-5 {margin-left:-200px;} -.pull-6 {margin-left:-240px;} -.pull-7 {margin-left:-280px;} -.pull-8 {margin-left:-320px;} -.pull-9 {margin-left:-360px;} -.pull-10 {margin-left:-400px;} -.pull-11 {margin-left:-440px;} -.pull-12 {margin-left:-480px;} -.pull-13 {margin-left:-520px;} -.pull-14 {margin-left:-560px;} -.pull-15 {margin-left:-600px;} -.pull-16 {margin-left:-640px;} -.pull-17 {margin-left:-680px;} -.pull-18 {margin-left:-720px;} -.pull-19 {margin-left:-760px;} -.pull-20 {margin-left:-800px;} -.pull-21 {margin-left:-840px;} -.pull-22 {margin-left:-880px;} -.pull-23 {margin-left:-920px;} -.pull-24 {margin-left:-960px;} -.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;} -.push-1 {margin:0 -40px 1.5em 40px;} -.push-2 {margin:0 -80px 1.5em 80px;} -.push-3 {margin:0 -120px 1.5em 120px;} -.push-4 {margin:0 -160px 1.5em 160px;} -.push-5 {margin:0 -200px 1.5em 200px;} -.push-6 {margin:0 -240px 1.5em 240px;} -.push-7 {margin:0 -280px 1.5em 280px;} -.push-8 {margin:0 -320px 1.5em 320px;} -.push-9 {margin:0 -360px 1.5em 360px;} -.push-10 {margin:0 -400px 1.5em 400px;} -.push-11 {margin:0 -440px 1.5em 440px;} -.push-12 {margin:0 -480px 1.5em 480px;} -.push-13 {margin:0 -520px 1.5em 520px;} -.push-14 {margin:0 -560px 1.5em 560px;} -.push-15 {margin:0 -600px 1.5em 600px;} -.push-16 {margin:0 -640px 1.5em 640px;} -.push-17 {margin:0 -680px 1.5em 680px;} -.push-18 {margin:0 -720px 1.5em 720px;} -.push-19 {margin:0 -760px 1.5em 760px;} -.push-20 {margin:0 -800px 1.5em 800px;} -.push-21 {margin:0 -840px 1.5em 840px;} -.push-22 {margin:0 -880px 1.5em 880px;} -.push-23 {margin:0 -920px 1.5em 920px;} -.push-24 {margin:0 -960px 1.5em 960px;} -.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:left;position:relative;} -div.prepend-top, .prepend-top {margin-top:1.5em;} -div.append-bottom, .append-bottom {margin-bottom:1.5em;} -.box {padding:1.5em;margin-bottom:1.5em;background:#e5eCf9;} -hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:1px;margin:0 0 1.45em;border:none;} -hr.space {background:#fff;color:#fff;visibility:hidden;} -.clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;} -.clearfix, .container {display:block;} -.clear {clear:both;}
\ No newline at end of file diff --git a/budget/static/blueprint/src/forms.css b/budget/static/blueprint/src/forms.css deleted file mode 100644 index 4dc4bc2..0000000 --- a/budget/static/blueprint/src/forms.css +++ /dev/null @@ -1,81 +0,0 @@ -/* -------------------------------------------------------------- - - forms.css - * Sets up some default styling for forms - * Gives you classes to enhance your forms - - Usage: - * For text fields, use class .title or .text - * For inline forms, use .inline (even when using columns) - --------------------------------------------------------------- */ - -/* - A special hack is included for IE8 since it does not apply padding - correctly on fieldsets - */ -label { font-weight: bold; } -fieldset { padding:0 1.4em 1.4em 1.4em; margin: 0 0 1.5em 0; border: 1px solid #ccc; } -legend { font-weight: bold; font-size:1.2em; margin-top:-0.2em; margin-bottom:1em; } - -fieldset, #IE8#HACK { padding-top:1.4em; } -legend, #IE8#HACK { margin-top:0; margin-bottom:0; } - -/* Form fields --------------------------------------------------------------- */ - -/* - Attribute selectors are used to differentiate the different types - of input elements, but to support old browsers, you will have to - add classes for each one. ".title" simply creates a large text - field, this is purely for looks. - */ -input[type=text], input[type=password], -input.text, input.title, -textarea { - background-color:#fff; - border:1px solid #bbb; -} -input[type=text]:focus, input[type=password]:focus, -input.text:focus, input.title:focus, -textarea:focus { - border-color:#666; -} -select { background-color:#fff; border-width:1px; border-style:solid; } - -input[type=text], input[type=password], -input.text, input.title, -textarea, select { - margin:0.5em 0; -} - -input.text, -input.title { width: 300px; padding:5px; } -input.title { font-size:1.5em; } -textarea { width: 390px; height: 250px; padding:5px; } - -/* - This is to be used on forms where a variety of elements are - placed side-by-side. Use the p tag to denote a line. - */ -form.inline { line-height:3; } -form.inline p { margin-bottom:0; } - - -/* Success, info, notice and error/alert boxes --------------------------------------------------------------- */ - -.error, -.alert, -.notice, -.success, -.info { padding: 0.8em; margin-bottom: 1em; border: 2px solid #ddd; } - -.error, .alert { background: #fbe3e4; color: #8a1f11; border-color: #fbc2c4; } -.notice { background: #fff6bf; color: #514721; border-color: #ffd324; } -.success { background: #e6efc2; color: #264409; border-color: #c6d880; } -.info { background: #d5edf8; color: #205791; border-color: #92cae4; } -.error a, .alert a { color: #8a1f11; } -.notice a { color: #514721; } -.success a { color: #264409; } -.info a { color: #205791; } diff --git a/budget/static/blueprint/src/grid.css b/budget/static/blueprint/src/grid.css deleted file mode 100755 index c102c1f..0000000 --- a/budget/static/blueprint/src/grid.css +++ /dev/null @@ -1,280 +0,0 @@ -/* -------------------------------------------------------------- - - grid.css - * Sets up an easy-to-use grid of 24 columns. - - By default, the grid is 950px wide, with 24 columns - spanning 30px, and a 10px margin between columns. - - If you need fewer or more columns, namespaces or semantic - element names, use the compressor script (lib/compress.rb) - --------------------------------------------------------------- */ - -/* A container should group all your columns. */ -.container { - width: 950px; - margin: 0 auto; -} - -/* Use this class on any .span / container to see the grid. */ -.showgrid { - background: url(src/grid.png); -} - - -/* Columns --------------------------------------------------------------- */ - -/* Sets up basic grid floating and margin. */ -.column, .span-1, .span-2, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-9, .span-10, .span-11, .span-12, .span-13, .span-14, .span-15, .span-16, .span-17, .span-18, .span-19, .span-20, .span-21, .span-22, .span-23, .span-24 { - float: left; - margin-right: 10px; -} - -/* The last column in a row needs this class. */ -.last { margin-right: 0; } - -/* Use these classes to set the width of a column. */ -.span-1 {width: 30px;} - -.span-2 {width: 70px;} -.span-3 {width: 110px;} -.span-4 {width: 150px;} -.span-5 {width: 190px;} -.span-6 {width: 230px;} -.span-7 {width: 270px;} -.span-8 {width: 310px;} -.span-9 {width: 350px;} -.span-10 {width: 390px;} -.span-11 {width: 430px;} -.span-12 {width: 470px;} -.span-13 {width: 510px;} -.span-14 {width: 550px;} -.span-15 {width: 590px;} -.span-16 {width: 630px;} -.span-17 {width: 670px;} -.span-18 {width: 710px;} -.span-19 {width: 750px;} -.span-20 {width: 790px;} -.span-21 {width: 830px;} -.span-22 {width: 870px;} -.span-23 {width: 910px;} -.span-24 {width:950px; margin-right:0;} - -/* Use these classes to set the width of an input. */ -input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 { - border-left-width: 1px; - border-right-width: 1px; - padding-left: 5px; - padding-right: 5px; -} - -input.span-1, textarea.span-1 { width: 18px; } -input.span-2, textarea.span-2 { width: 58px; } -input.span-3, textarea.span-3 { width: 98px; } -input.span-4, textarea.span-4 { width: 138px; } -input.span-5, textarea.span-5 { width: 178px; } -input.span-6, textarea.span-6 { width: 218px; } -input.span-7, textarea.span-7 { width: 258px; } -input.span-8, textarea.span-8 { width: 298px; } -input.span-9, textarea.span-9 { width: 338px; } -input.span-10, textarea.span-10 { width: 378px; } -input.span-11, textarea.span-11 { width: 418px; } -input.span-12, textarea.span-12 { width: 458px; } -input.span-13, textarea.span-13 { width: 498px; } -input.span-14, textarea.span-14 { width: 538px; } -input.span-15, textarea.span-15 { width: 578px; } -input.span-16, textarea.span-16 { width: 618px; } -input.span-17, textarea.span-17 { width: 658px; } -input.span-18, textarea.span-18 { width: 698px; } -input.span-19, textarea.span-19 { width: 738px; } -input.span-20, textarea.span-20 { width: 778px; } -input.span-21, textarea.span-21 { width: 818px; } -input.span-22, textarea.span-22 { width: 858px; } -input.span-23, textarea.span-23 { width: 898px; } -input.span-24, textarea.span-24 { width: 938px; } - -/* Add these to a column to append empty cols. */ - -.append-1 { padding-right: 40px;} -.append-2 { padding-right: 80px;} -.append-3 { padding-right: 120px;} -.append-4 { padding-right: 160px;} -.append-5 { padding-right: 200px;} -.append-6 { padding-right: 240px;} -.append-7 { padding-right: 280px;} -.append-8 { padding-right: 320px;} -.append-9 { padding-right: 360px;} -.append-10 { padding-right: 400px;} -.append-11 { padding-right: 440px;} -.append-12 { padding-right: 480px;} -.append-13 { padding-right: 520px;} -.append-14 { padding-right: 560px;} -.append-15 { padding-right: 600px;} -.append-16 { padding-right: 640px;} -.append-17 { padding-right: 680px;} -.append-18 { padding-right: 720px;} -.append-19 { padding-right: 760px;} -.append-20 { padding-right: 800px;} -.append-21 { padding-right: 840px;} -.append-22 { padding-right: 880px;} -.append-23 { padding-right: 920px;} - -/* Add these to a column to prepend empty cols. */ - -.prepend-1 { padding-left: 40px;} -.prepend-2 { padding-left: 80px;} -.prepend-3 { padding-left: 120px;} -.prepend-4 { padding-left: 160px;} -.prepend-5 { padding-left: 200px;} -.prepend-6 { padding-left: 240px;} -.prepend-7 { padding-left: 280px;} -.prepend-8 { padding-left: 320px;} -.prepend-9 { padding-left: 360px;} -.prepend-10 { padding-left: 400px;} -.prepend-11 { padding-left: 440px;} -.prepend-12 { padding-left: 480px;} -.prepend-13 { padding-left: 520px;} -.prepend-14 { padding-left: 560px;} -.prepend-15 { padding-left: 600px;} -.prepend-16 { padding-left: 640px;} -.prepend-17 { padding-left: 680px;} -.prepend-18 { padding-left: 720px;} -.prepend-19 { padding-left: 760px;} -.prepend-20 { padding-left: 800px;} -.prepend-21 { padding-left: 840px;} -.prepend-22 { padding-left: 880px;} -.prepend-23 { padding-left: 920px;} - - -/* Border on right hand side of a column. */ -.border { - padding-right: 4px; - margin-right: 5px; - border-right: 1px solid #ddd; -} - -/* Border with more whitespace, spans one column. */ -.colborder { - padding-right: 24px; - margin-right: 25px; - border-right: 1px solid #ddd; -} - - -/* Use these classes on an element to push it into the -next column, or to pull it into the previous column. */ - - -.pull-1 { margin-left: -40px; } -.pull-2 { margin-left: -80px; } -.pull-3 { margin-left: -120px; } -.pull-4 { margin-left: -160px; } -.pull-5 { margin-left: -200px; } -.pull-6 { margin-left: -240px; } -.pull-7 { margin-left: -280px; } -.pull-8 { margin-left: -320px; } -.pull-9 { margin-left: -360px; } -.pull-10 { margin-left: -400px; } -.pull-11 { margin-left: -440px; } -.pull-12 { margin-left: -480px; } -.pull-13 { margin-left: -520px; } -.pull-14 { margin-left: -560px; } -.pull-15 { margin-left: -600px; } -.pull-16 { margin-left: -640px; } -.pull-17 { margin-left: -680px; } -.pull-18 { margin-left: -720px; } -.pull-19 { margin-left: -760px; } -.pull-20 { margin-left: -800px; } -.pull-21 { margin-left: -840px; } -.pull-22 { margin-left: -880px; } -.pull-23 { margin-left: -920px; } -.pull-24 { margin-left: -960px; } - -.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float: left; position:relative;} - - -.push-1 { margin: 0 -40px 1.5em 40px; } -.push-2 { margin: 0 -80px 1.5em 80px; } -.push-3 { margin: 0 -120px 1.5em 120px; } -.push-4 { margin: 0 -160px 1.5em 160px; } -.push-5 { margin: 0 -200px 1.5em 200px; } -.push-6 { margin: 0 -240px 1.5em 240px; } -.push-7 { margin: 0 -280px 1.5em 280px; } -.push-8 { margin: 0 -320px 1.5em 320px; } -.push-9 { margin: 0 -360px 1.5em 360px; } -.push-10 { margin: 0 -400px 1.5em 400px; } -.push-11 { margin: 0 -440px 1.5em 440px; } -.push-12 { margin: 0 -480px 1.5em 480px; } -.push-13 { margin: 0 -520px 1.5em 520px; } -.push-14 { margin: 0 -560px 1.5em 560px; } -.push-15 { margin: 0 -600px 1.5em 600px; } -.push-16 { margin: 0 -640px 1.5em 640px; } -.push-17 { margin: 0 -680px 1.5em 680px; } -.push-18 { margin: 0 -720px 1.5em 720px; } -.push-19 { margin: 0 -760px 1.5em 760px; } -.push-20 { margin: 0 -800px 1.5em 800px; } -.push-21 { margin: 0 -840px 1.5em 840px; } -.push-22 { margin: 0 -880px 1.5em 880px; } -.push-23 { margin: 0 -920px 1.5em 920px; } -.push-24 { margin: 0 -960px 1.5em 960px; } - -.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float: left; position:relative;} - - -/* Misc classes and elements --------------------------------------------------------------- */ - -/* In case you need to add a gutter above/below an element */ -div.prepend-top, .prepend-top { - margin-top:1.5em; -} -div.append-bottom, .append-bottom { - margin-bottom:1.5em; -} - -/* Use a .box to create a padded box inside a column. */ -.box { - padding: 1.5em; - margin-bottom: 1.5em; - background: #e5eCf9; -} - -/* Use this to create a horizontal ruler across a column. */ -hr { - background: #ddd; - color: #ddd; - clear: both; - float: none; - width: 100%; - height: 1px; - margin: 0 0 1.45em; - border: none; -} - -hr.space { - background: #fff; - color: #fff; - visibility: hidden; -} - - -/* Clearing floats without extra markup - Based on How To Clear Floats Without Structural Markup by PiE - [http://www.positioniseverything.net/easyclearing.html] */ - -.clearfix:after, .container:after { - content: "\0020"; - display: block; - height: 0; - clear: both; - visibility: hidden; - overflow:hidden; -} -.clearfix, .container {display: block;} - -/* Regular clearing - apply to column that should drop below previous ones. */ - -.clear { clear:both; } diff --git a/budget/static/blueprint/src/grid.png b/budget/static/blueprint/src/grid.png Binary files differdeleted file mode 100644 index d42a6c3..0000000 --- a/budget/static/blueprint/src/grid.png +++ /dev/null diff --git a/budget/static/blueprint/src/ie.css b/budget/static/blueprint/src/ie.css deleted file mode 100644 index 111a2ea..0000000 --- a/budget/static/blueprint/src/ie.css +++ /dev/null @@ -1,79 +0,0 @@ -/* -------------------------------------------------------------- - - ie.css - - Contains every hack for Internet Explorer, - so that our core files stay sweet and nimble. - --------------------------------------------------------------- */ - -/* Make sure the layout is centered in IE5 */ -body { text-align: center; } -.container { text-align: left; } - -/* Fixes IE margin bugs */ -* html .column, * html .span-1, * html .span-2, -* html .span-3, * html .span-4, * html .span-5, -* html .span-6, * html .span-7, * html .span-8, -* html .span-9, * html .span-10, * html .span-11, -* html .span-12, * html .span-13, * html .span-14, -* html .span-15, * html .span-16, * html .span-17, -* html .span-18, * html .span-19, * html .span-20, -* html .span-21, * html .span-22, * html .span-23, -* html .span-24 { display:inline; overflow-x: hidden; } - - -/* Elements --------------------------------------------------------------- */ - -/* Fixes incorrect styling of legend in IE6. */ -* html legend { margin:0px -8px 16px 0; padding:0; } - -/* Fixes wrong line-height on sup/sub in IE. */ -sup { vertical-align:text-top; } -sub { vertical-align:text-bottom; } - -/* Fixes IE7 missing wrapping of code elements. */ -html>body p code { *white-space: normal; } - -/* IE 6&7 has problems with setting proper <hr> margins. */ -hr { margin:-8px auto 11px; } - -/* Explicitly set interpolation, allowing dynamically resized images to not look horrible */ -img { -ms-interpolation-mode:bicubic; } - -/* Clearing --------------------------------------------------------------- */ - -/* Makes clearfix actually work in IE */ -.clearfix, .container { display:inline-block; } -* html .clearfix, -* html .container { height:1%; } - - -/* Forms --------------------------------------------------------------- */ - -/* Fixes padding on fieldset */ -fieldset { padding-top:0; } -legend { margin-top:-0.2em; margin-bottom:1em; margin-left:-0.5em; } - -/* Makes classic textareas in IE 6 resemble other browsers */ -textarea { overflow:auto; } - -/* Makes labels behave correctly in IE 6 and 7 */ -label { vertical-align:middle; position:relative; top:-0.25em; } - -/* Fixes rule that IE 6 ignores */ -input.text, input.title, textarea { background-color:#fff; border:1px solid #bbb; } -input.text:focus, input.title:focus { border-color:#666; } -input.text, input.title, textarea, select { margin:0.5em 0; } -input.checkbox, input.radio { position:relative; top:.25em; } - -/* Fixes alignment of inline form elements */ -form.inline div, form.inline p { vertical-align:middle; } -form.inline input.checkbox, form.inline input.radio, -form.inline input.button, form.inline button { - margin:0.5em 0; -} -button, input.button { position:relative;top:0.25em; } diff --git a/budget/static/blueprint/src/print.css b/budget/static/blueprint/src/print.css deleted file mode 100755 index 5db0e65..0000000 --- a/budget/static/blueprint/src/print.css +++ /dev/null @@ -1,92 +0,0 @@ -/* -------------------------------------------------------------- - - print.css - * Gives you some sensible styles for printing pages. - * See Readme file in this directory for further instructions. - - Some additions you'll want to make, customized to your markup: - #header, #footer, #navigation { display:none; } - --------------------------------------------------------------- */ - -body { - line-height: 1.5; - font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; - color:#000; - background: none; - font-size: 10pt; -} - - -/* Layout --------------------------------------------------------------- */ - -.container { - background: none; -} - -hr { - background:#ccc; - color:#ccc; - width:100%; - height:2px; - margin:2em 0; - padding:0; - border:none; -} -hr.space { - background: #fff; - color: #fff; - visibility: hidden; -} - - -/* Text --------------------------------------------------------------- */ - -h1,h2,h3,h4,h5,h6 { font-family: "Helvetica Neue", Arial, "Lucida Grande", sans-serif; } -code { font:.9em "Courier New", Monaco, Courier, monospace; } - -a img { border:none; } -p img.top { margin-top: 0; } - -blockquote { - margin:1.5em; - padding:1em; - font-style:italic; - font-size:.9em; -} - -.small { font-size: .9em; } -.large { font-size: 1.1em; } -.quiet { color: #999; } -.hide { display:none; } - - -/* Links --------------------------------------------------------------- */ - -a:link, a:visited { - background: transparent; - font-weight:700; - text-decoration: underline; -} - -/* - This has been the source of many questions in the past. This - snippet of CSS appends the URL of each link within the text. - The idea is that users printing your webpage will want to know - the URLs they go to. If you want to remove this functionality, - comment out this snippet and make sure to re-compress your files. - */ -a:link:after, a:visited:after { - content: " (" attr(href) ")"; - font-size: 90%; -} - -/* If you're having trouble printing relative links, uncomment and customize this: - (note: This is valid CSS3, but it still won't go through the W3C CSS Validator) */ - -/* a[href^="/"]:after { - content: " (http://www.yourdomain.com" attr(href) ") "; -} */ diff --git a/budget/static/blueprint/src/reset.css b/budget/static/blueprint/src/reset.css deleted file mode 100755 index 1417c4c..0000000 --- a/budget/static/blueprint/src/reset.css +++ /dev/null @@ -1,67 +0,0 @@ -/* -------------------------------------------------------------- - - reset.css - * Resets default browser CSS. - --------------------------------------------------------------- */ - -html { - margin:0; - padding:0; - border:0; -} - -body, div, span, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, code, -del, dfn, em, img, q, dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, dialog, figure, footer, header, -hgroup, nav, section { - margin: 0; - padding: 0; - border: 0; - font-weight: inherit; - font-style: inherit; - font-size: 100%; - font-family: inherit; - vertical-align: baseline; -} - -/* This helps to make newer HTML5 elements behave like DIVs in older browers */ -article, aside, dialog, figure, footer, header, -hgroup, nav, section { - display:block; -} - -/* Line-height should always be unitless! */ -body { - line-height: 1.5; - background: white; -} - -/* Tables still need 'cellspacing="0"' in the markup. */ -table { - border-collapse: separate; - border-spacing: 0; -} -/* float:none prevents the span-x classes from breaking table-cell display */ -caption, th, td { - text-align: left; - font-weight: normal; - float:none !important; -} -table, th, td { - vertical-align: middle; -} - -/* Remove possible quote marks (") from <q>, <blockquote>. */ -blockquote:before, blockquote:after, q:before, q:after { content: ''; } -blockquote, q { quotes: "" ""; } - -/* Remove annoying border on linked images. */ -a img { border: none; } - -/* Remember to define your own focus styles! */ -:focus { outline: 0; }
\ No newline at end of file diff --git a/budget/static/blueprint/src/typography.css b/budget/static/blueprint/src/typography.css deleted file mode 100644 index 1598320..0000000 --- a/budget/static/blueprint/src/typography.css +++ /dev/null @@ -1,123 +0,0 @@ -/* -------------------------------------------------------------- - - typography.css - * Sets up some sensible default typography. - --------------------------------------------------------------- */ - -/* Default font settings. - The font-size percentage is of 16px. (0.75 * 16px = 12px) */ -html { font-size:100.01%; } -body { - font-size: 75%; - color: #222; - background: #fff; - font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; -} - - -/* Headings --------------------------------------------------------------- */ - -h1,h2,h3,h4,h5,h6 { font-weight: normal; color: #111; } - -h1 { font-size: 3em; line-height: 1; margin-bottom: 0.5em; } -h2 { font-size: 2em; margin-bottom: 0.75em; } -h3 { font-size: 1.5em; line-height: 1; margin-bottom: 1em; } -h4 { font-size: 1.2em; line-height: 1.25; margin-bottom: 1.25em; } -h5 { font-size: 1em; font-weight: bold; margin-bottom: 1.5em; } -h6 { font-size: 1em; font-weight: bold; } - -h1 img, h2 img, h3 img, -h4 img, h5 img, h6 img { - margin: 0; -} - - -/* Text elements --------------------------------------------------------------- */ - -p { margin: 0 0 1.5em; } -/* - These can be used to pull an image at the start of a paragraph, so - that the text flows around it (usage: <p><img class="left">Text</p>) - */ -.left { float: left !important; } -p .left { margin: 1.5em 1.5em 1.5em 0; padding: 0; } -.right { float: right !important; } -p .right { margin: 1.5em 0 1.5em 1.5em; padding: 0; } - -a:focus, -a:hover { color: #09f; } -a { color: #06c; text-decoration: underline; } - -blockquote { margin: 1.5em; color: #666; font-style: italic; } -strong,dfn { font-weight: bold; } -em,dfn { font-style: italic; } -sup, sub { line-height: 0; } - -abbr, -acronym { border-bottom: 1px dotted #666; } -address { margin: 0 0 1.5em; font-style: italic; } -del { color:#666; } - -pre { margin: 1.5em 0; white-space: pre; } -pre,code,tt { font: 1em 'andale mono', 'lucida console', monospace; line-height: 1.5; } - - -/* Lists --------------------------------------------------------------- */ - -li ul, -li ol { margin: 0; } -ul, ol { margin: 0 1.5em 1.5em 0; padding-left: 1.5em; } - -ul { list-style-type: disc; } -ol { list-style-type: decimal; } - -dl { margin: 0 0 1.5em 0; } -dl dt { font-weight: bold; } -dd { margin-left: 1.5em;} - - -/* Tables --------------------------------------------------------------- */ - -/* - Because of the need for padding on TH and TD, the vertical rhythm - on table cells has to be 27px, instead of the standard 18px or 36px - of other elements. - */ -table { margin-bottom: 1.4em; width:100%; } -th { font-weight: bold; } -thead th { background: #c3d9ff; } -th,td,caption { padding: 4px 10px 4px 5px; } -/* - You can zebra-stripe your tables in outdated browsers by adding - the class "even" to every other table row. - */ -tbody tr:nth-child(even) td, -tbody tr.even td { - background: #e5ecf9; -} -tfoot { font-style: italic; } -caption { background: #eee; } - - -/* Misc classes --------------------------------------------------------------- */ - -.small { font-size: .8em; margin-bottom: 1.875em; line-height: 1.875em; } -.large { font-size: 1.2em; line-height: 2.5em; margin-bottom: 1.25em; } -.hide { display: none; } - -.quiet { color: #666; } -.loud { color: #000; } -.highlight { background:#ff0; } -.added { background:#060; color: #fff; } -.removed { background:#900; color: #fff; } - -.first { margin-left:0; padding-left:0; } -.last { margin-right:0; padding-right:0; } -.top { margin-top:0; padding-top:0; } -.bottom { margin-bottom:0; padding-bottom:0; } diff --git a/budget/static/main.css b/budget/static/main.css index 2c7d4a4..8f16a41 100644 --- a/budget/static/main.css +++ b/budget/static/main.css @@ -1,89 +1,15 @@ -@import url('blueprint/screen.css'); -@import url('awesome/awesome.css'); -@import url('uniform/blue.uni-form.css'); - -/** CSS3 fonts **/ +@import url(http://twitter.github.com/bootstrap/assets/css/bootstrap-1.0.0.min.css); @import url(http://fonts.googleapis.com/css?family=Lobster); -@import url(http://fonts.googleapis.com/css?family=Just+Me+Again+Down+Here); - - -a { - color: #a45900; -} - -.fright{ - float: right; -} - -.fleft{ - float: left; -} - -#title{ - margin-top: 10px; -} - - #title h1{ - font-family: 'Lobster', arial, serif; - } - -#topmenu{ - margin-top: 30px; -} - - #topmenu ul{ - float: right; - } - - #topmenu ul li{ - float: right; - list-style-type: none; - margin-left: 10px; - } - - -#leftmenu input{ - width: 150px; -} - -.list_bills{ - margin-top: 10px; -} - -.members { - list-style-type: none; - margin: 0; - padding: 0; - width: 80%; -} - - .members li{ - padding: 5px; - } - - .members .odd{ - background-color: #efefef; - } - - .members .remove{ - float: right; - } - .members .balance{ - margin-right: 10px; - font-weight: bold; - } +.topbar h3{ margin-left: 75px; } +.topbar ul{ padding-left: 75px; } +div.topbar ul.secondary-nav { padding-right: 75px; } +.logo{ font-family: 'Lobster', arial, serif; } +.balance tr td { font-weight: bold; } +.positive { color: green; } +.negative { color: red; } - .positive{ - color: green; - } - .negative{ - color: red; - } +.sidebar h2 { text-align: center; } +.sidebar button{ margin-top: 10px; float: right; } -.flash{ - padding:8px; - background-color: #ffc; - font-weight: bold; - font-size:15px;-moz-border-radius: 6px;-webkit-border-radius: 6px; -} +#bills { color: black; } diff --git a/budget/static/uniform/blue.uni-form.css b/budget/static/uniform/blue.uni-form.css deleted file mode 100644 index 2c67c82..0000000 --- a/budget/static/uniform/blue.uni-form.css +++ /dev/null @@ -1,157 +0,0 @@ -@import url('uni-form.css'); - -/* ------------------------------------------------------------------------------ - - UNI-FORM BLUE by DRAGAN BABIC (v2) | Wed, 31 Mar 10 - - ------------------------------------------------------------------------------ - - Copyright (c) 2010, Dragan Babic - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, - copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following - conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS IN THE SOFTWARE. - - ------------------------------------------------------------------------------ */ - -.uniForm{} - - .uniForm legend{ font-weight: bold; font-size: 100%; margin: 0; padding: 1.5em 0; } - - .uniForm .ctrlHolder.focused{ background: #e1f0f6; } - - .uniForm label { float: left; line-height: 300%;} - .uniForm input, .uniForm select { float: right } - - .uniForm .buttonHolder{ background: #c4ced1; text-align: right; margin: 1.5em 0 0 0; padding: 1.5em; - /* CSS3 */ - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - -o-border-radius: 4px; - -khtml-border-radius: 4px; - } - .uniForm .buttonHolder .primaryAction{ padding: 10px 22px; line-height: 1; background: #254a86; border: 1px solid #163362; font-size: 12px; font-weight: bold; color: #fff; - /* CSS3 */ - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - -o-border-radius: 4px; - -khtml-border-radius: 4px; - box-shadow: 1px 1px 0 #d5e2e7; - -webkit-box-shadow: 1px 1px 0 #d5e2e7; - -moz-box-shadow: 1px 1px 0 #d5e2e7; - text-shadow: -1px -1px 0 rgba(0,0,0,.25); - } - .uniForm .buttonHolder .primaryAction:active{ position: relative; top: 1px; } - .uniForm .secondaryAction { text-align: left; } - .uniForm button.secondaryAction { background: transparent; border: none; color: #777; margin: 1.25em 0 0 0; padding: 0; } - - .uniForm .inlineLabels label em, - .uniForm .inlineLabels .label em{ font-style: normal; font-weight: bold; } - .uniForm label small{ font-size: .75em; color: #777; } - - .uniForm .textInput, - .uniForm textarea { padding: 4px 2px; border: 1px solid #b2babe; background: #fff; - /* CSS3 */ - border-radius: 3px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - -o-border-radius: 3px; - -khtml-border-radius: 3px; - } - .uniForm textarea { height: 12em; } - - .uniForm .ctrlHolder ul li label{ font-size: .85em; } - - /* Get rid of the 'glow' effect in WebKit, optional */ - .uniForm .ctrlHolder .textInput:focus, - .uniForm .ctrlHolder textarea:focus{ outline: none; } - - .uniForm .formHint { font-size: .85em; color: #777; } - .uniForm .inlineLabels .formHint { padding-top: .5em; } - .uniForm .ctrlHolder.focused .formHint{ color: #333; } - -/* ----------------------------------------------------------------------------- */ -/* ############################### Messages #################################### */ -/* ----------------------------------------------------------------------------- */ - - /* Error message at the top of the form */ - .uniForm #errorMsg{ background: #c20f2e; color: #fff; margin: 0 0 1.5em 0; padding: 1px 1.5em; - /* CSS3 */ - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - -o-border-radius: 4px; - -khtml-border-radius: 4px; - box-shadow: 0 0 14px rgba(0,0,0,.25); - -webkit-box-shadow: 0 0 14px rgba(0,0,0,.25); - -moz-box-shadow: 0 0 14px rgba(0,0,0,.25); - } - .uniForm #errorMsg ol{ margin: 0 0 1.5em 0; padding: 0; } - .uniForm #errorMsg ol li{ margin: 0 0 3px 1.5em; padding: 7px; background: #a20d27; position: relative; font-size: .85em; - /* CSS3 */ - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - -o-border-radius: 4px; - -khtml-border-radius: 4px; - } - - .uniForm .ctrlHolder.error, - .uniForm .ctrlHolder.focused.error{ color: #c20f2e; - /* CSS3 */ - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - -o-border-radius: 4px; - -khtml-border-radius: 4px; - } - .uniForm .ctrlHolder.error input.error, - .uniForm .ctrlHolder.error select.error, - .uniForm .ctrlHolder.error textarea.error{ border-color: #c20f2e; } - - /* Success messages at the top of the form */ - .uniForm #okMsg{ background: #59a20e; color: #343434; margin: 0 0 1.5em 0; padding: 1.5em; text-align: center; - /* CSS3 */ - border-radius: 4px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - -o-border-radius: 4px; - -khtml-border-radius: 4px; - box-shadow: 0 0 14px rgba(0,0,0,.25); - -webkit-box-shadow: 0 0 14px rgba(0,0,0,.25); - -moz-box-shadow: 0 0 14px rgba(0,0,0,.25); - text-shadow: 1px 1px 0 rgba(255,255,255,.25); - } - .uniForm #okMsg p{ margin: 0; } - -/* ----------------------------------------------------------------------------- */ -/* ############################### Columns ##################################### */ -/* ----------------------------------------------------------------------------- */ - - .uniForm .col{ margin-bottom: 1.5em; } - /* Use .first and .last classes to control the layout/spacing of your columns */ - .uniForm .col.first{ width: 49%; float: left; clear: none; } - .uniForm .col.last { width: 49%; float: right; clear: none; margin-right: 0; } - -.ctrlHolder ul{ - float: right; -} diff --git a/budget/static/uniform/uni-form.css b/budget/static/uniform/uni-form.css deleted file mode 100755 index d0aca26..0000000 --- a/budget/static/uniform/uni-form.css +++ /dev/null @@ -1,164 +0,0 @@ -/* ------------------------------------------------------------------------------ - - Copyright (c) 2010, Dragan Babic - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, - copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following - conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS IN THE SOFTWARE. - - ------------------------------------------------------------------------------ */ -/* ############################# GENERALS ################################### */ -/* ------------------------------------------------------------------------------ */ - -.uniForm{ margin: 0; padding: 0; position: relative; z-index: 1; } /* reset stuff */ - - /* Some generals and more resets */ - .uniForm fieldset{ border: none; margin: 0; padding: 0; } - .uniForm fieldset legend{ margin: 0; padding: 0; } - - /* This are the main units that contain form elements */ - .uniForm .ctrlHolder, - .uniForm .buttonHolder{ margin: 0; padding: 0; clear: both; } - - /* Clear all floats */ - .uniForm:after, - .uniForm .buttonHolder:after, - .uniForm .ctrlHolder:after, - .uniForm .ctrlHolder .multiField:after, - .uniForm .inlineLabel:after{ content: "."; display: block; height: 0; line-height: 0; font-size: 0; clear: both; min-height: 0; visibility: hidden; } - - .uniForm label, - .uniForm button{ cursor: pointer; } - -/* ------------------------------------------------------------------------------ */ -/* ########################## DEFAULT LAYOUT ################################ */ -/* ------------------------------------------------------------------------------ */ -/* Styles for form controls where labels are above the input elements */ -/* ------------------------------------------------------------------------------ */ - - .uniForm label, - .uniForm .label{ display: block; float: none; margin: 0 0 .5em 0; padding: 0; line-height: 100%; width: auto; } - - /* Float the input elements */ - .uniForm .textInput, - .uniForm .fileUpload, - .uniForm .selectInput, - .uniForm select, - .uniForm textarea{ float: left; width: 53%; margin: 0; } - - /* Read-Only output */ - .uniForm .readOnlyLabel{ margin: 0; font-size: 1em; font-weight: bold; } - .uniForm .readOnly{ font-size: .85em; } - .uniForm .readOnly .choiceLabel{ color: #777; text-transform: uppercase; font-size: .75em; letter-spacing: .15em; } - - /* Postition the hints */ - .uniForm .formHint{ float: right; width: 43%; margin: 0; clear: none; } - - /* Position the elements inside combo boxes (multiple inputs/selects/checkboxes/radio buttons per unit) */ - .uniForm ul{ float: left; width: 53%; margin: 0; padding: 0; } - .uniForm ul li{ margin: 0 0 .5em 0; list-style: none; } - .uniForm ul li label{ margin: 0; float: none; display: block; overflow: visible; } - /* Alternate layout */ - .uniForm ul.alternate li{ float: left; width: 30%; margin-right: 3%; } - .uniForm ul.alternate li label{ float: none; display: block; width: 98%; } - .uniForm ul .textInput, - .uniForm ul .selectInput, - .uniForm ul select, - .uniForm ul.alternate .textInput, - .uniForm ul.alternate .selectInput, - .uniForm ul.alternate select{ width: 98%; margin-top: .5em; display: block; float: none; } - - /* Required fields asterisk styling */ - .uniForm label em, - .uniForm .label em{ float: left; width: 1em; margin: 0 0 0 -1em; } - -/* ------------------------------------------------------------------------------ */ -/* ######################### ALTERNATE LAYOUT ############################### */ -/* ------------------------------------------------------------------------------ */ -/* Styles for form controls where labels are in line with the input elements */ -/* Set the class of the parent (preferably to a fieldset) to .inlineLabels */ -/* ------------------------------------------------------------------------------ */ - - .uniForm .inlineLabels label, - .uniForm .inlineLabels .label, - .uniForm .inlineLabels .readOnlyLabel{ float: left; margin: .3em 2% 0 0; padding: 0; line-height: 1; position: relative; width: 32%; } - - .uniForm .inlineLabels .readOnlyLabel{ margin: 0; } - - /* Float the input elements */ - .uniForm .inlineLabels .textInput, - .uniForm .inlineLabels .fileUpload, - .uniForm .inlineLabels .selectInput, - .uniForm .inlineLabels select, - .uniForm .inlineLabels textarea{ float: left; width: 64%; } - - /* Postition the hints */ - .uniForm .inlineLabels .formHint{ clear: both; float: none; width: auto; margin-left: 34%; position: static; } - - /* Position the elements inside combo boxes (multiple inputs/selects/checkboxes/radio buttons per unit) */ - .uniForm .inlineLabels ul{ float: left; width: 66%; } - .uniForm .inlineLabels ul li{ margin: .5em 0; } - .uniForm .inlineLabels ul li label{ float: none; display: block; width: 100%; } - /* Alternate layout */ - .uniForm .inlineLabels ul.alternate li{ margin-right: 3%; margin-top: .25em; } - .uniForm .inlineLabels ul li label .textInput, - .uniForm .inlineLabels ul li label textarea, - .uniForm .inlineLabels ul li label select{ float: none; display: block; width: 98%; } - - .uniForm .inlineLabels .readOnly{ float: right; width: 66%; } - - /* Required fields asterisk styling */ - .uniForm .inlineLabels label em, - .uniForm .inlineLabels .label em{ display: block; float: none; margin: 0; position: absolute; right: 0; } - -/* ----------------------------------------------------------------------------- */ -/* ########################### Additional Stuff ################################ */ -/* ----------------------------------------------------------------------------- */ - - /* Generals */ - .uniForm legend{ color: inherit; } - - .uniForm .secondaryAction{ float: left; } - - /* .inlineLabel is used for inputs within labels - checkboxes and radio buttons */ - .uniForm .inlineLabel input, - .uniForm .inlineLabels .inlineLabel input, - .uniForm .blockLabels .inlineLabel input, - /* class .inlineLabel is depreciated */ - .uniForm label input{ float: none; display: inline; margin: 0; padding: 0; border: none; } - - .uniForm .buttonHolder .inlineLabel, - .uniForm .buttonHolder label{ float: left; margin: .5em 0 0 0; width: auto; max-width: 60%; text-align: left; } - - /* When you don't want to use a label */ - .uniForm .inlineLabels .noLabel ul{ margin-left: 34%; /* Match to width of label + gap to field */ } - - /* Classes for control of the widths of the fields */ - .uniForm .small { width: 30% !important; } - .uniForm .medium{ width: 45% !important; } - .uniForm .large { } /* Large is default and should match the value you set for .textInput, textarea or select */ - .uniForm .auto { width: auto !important; height: auto !important; } - .uniForm .small, - .uniForm .medium, - .uniForm .auto{ margin-right: 4px; } - -/* Columns */ -.uniForm .col{ float: left; } -.uniForm .col{ width: 50%; }
\ No newline at end of file diff --git a/budget/templates/add_bill.html b/budget/templates/add_bill.html index 5b3a768..ec60f43 100644 --- a/budget/templates/add_bill.html +++ b/budget/templates/add_bill.html @@ -5,11 +5,9 @@ {% endblock %} {% block content %} -<h2>Add a new bill</h2> +<h2>{% if edit %}Edit a{% else %}Add a new{% endif %} bill</h2> -<div class="container span-24 add-bill uniForm" style="width: 400px"> - <form action="{{ url_for('add_bill') }}" method="post" class=uniForm"> - {{ forms.add_bill(form) }} - </form> -</div> +<form method="post"> + {{ forms.add_bill(form) }} +</form> {% endblock %} diff --git a/budget/templates/authenticate.html b/budget/templates/authenticate.html index d4f7df6..0ad8815 100644 --- a/budget/templates/authenticate.html +++ b/budget/templates/authenticate.html @@ -12,10 +12,6 @@ to <a href="{{ url_for("create_project", project_id=create_project) }}">create i </p> {% endif %} <form action="" method="POST" accept-charset="utf-8"> - {{ form.hidden_tag() }} - - <p>{{ form.id.label }}<br /> {{ form.id }}</p> - <p>{{ form.password.label }}<br /> {{ form.password }}</p> - <p>{{ form.submit }}</p> + {{ forms.authenticate(form) }} </form> {% endblock %} diff --git a/budget/templates/edit_bill.html b/budget/templates/edit_bill.html index 03a1a26..f069193 100644 --- a/budget/templates/edit_bill.html +++ b/budget/templates/edit_bill.html @@ -8,7 +8,7 @@ <h2>Edit a bill</h2> <div class="container span-24 add-bill uniForm" style="width: 400px"> - <form action="{{ url_for('edit_bill', bill_id=bill_id) }}" method="post" class=uniForm"> + <form action="" method="post" class=uniForm"> {{ forms.add_bill(form) }} </form> </div> diff --git a/budget/templates/forms.html b/budget/templates/forms.html index 62ad4b8..4e62f58 100644 --- a/budget/templates/forms.html +++ b/budget/templates/forms.html @@ -1,17 +1,29 @@ {% macro input(field, multiple=False) -%} - <div class="ctrlHolder"> + <div class="clearfix"> + {% if field.type != "SubmitField" %} {{ field.label }} {% endif %} - {% if multiple == True %} - {{ field(multiple=True) }} - {% else %} - {{ field }} - {% endif %} - {% if field.description %} - <p class="formHint">{{ field.description }}</p> + <div class="input"> + {% if multiple == True %} + {{ field(multiple=True) }} + {% else %} + {{ field }} + {% endif %} + {% if field.description %} + <span class="help-inline">{{ field.description }}</span> + {% endif %} + </div> + </div> <!-- /clearfix --> +{% endmacro %} + +{% macro submit(field, cancel=False) -%} + <div class="actions"> + <button type="submit" class="btn primary">{{ field.name }}</button> + {% if cancel %} + <button id="cancel-form" type="reset" class="btn">Cancel</button> {% endif %} - </div> + </div> {% endmacro %} {% macro authenticate(form) %} @@ -20,7 +32,7 @@ {{ form.hidden_tag() }} {{ input(form.id) }} {{ input(form.password) }} - {{ input(form.submit) }} + {{ submit(form.submit) }} {% endmacro %} @@ -32,12 +44,14 @@ {{ input(form.id) }} {{ input(form.password) }} {{ input(form.contact_email) }} - {{ input(form.submit) }} + {{ submit(form.submit) }} {% endmacro %} {% macro add_bill(form) %} + <fieldset> + <legend>Add a bill</legend> {% include "display_errors.html" %} {{ form.hidden_tag() }} {{ input(form.date) }} @@ -45,15 +59,21 @@ {{ input(form.payer) }} {{ input(form.amount) }} {{ input(form.payed_for) }} - {{ input(form.submit) }} + </fieldset> + {{ submit(form.submit, cancel=True) }} {% endmacro %} {% macro add_member(form) %} - - {% include "display_errors.html" %} {{ form.hidden_tag() }} - {{ input(form.name) }} - {{ input(form.submit) }} + {{ form.name }} + <button class="btn">Add a new user</button> {% endmacro %} + +{% macro authenticate(form) %} + {{ form.hidden_tag() }} + {{ input(form.id) }} + {{ input(form.password) }} + {{ submit(form.submit) }} +{% endmacro %} diff --git a/budget/templates/layout.html b/budget/templates/layout.html index 3ab6f1f..988ee58 100644 --- a/budget/templates/layout.html +++ b/budget/templates/layout.html @@ -2,36 +2,74 @@ <!DOCTYPE html> <html> <head> -<title>Account manager</title> -<link rel=stylesheet type=text/css href="{{ url_for('static', filename='main.css') }}"> -<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> -<script type="text/javascript" charset="utf-8"> -$(document).ready(function(){ - setTimeout(function(){ - $(".flash").fadeOut("slow", function () { - $(".flash").remove(); - }); - }, 2000); + <title>Account manager</title> + <meta http-equiv="content-type" content="text/html; charset=utf-8"> + <link rel=stylesheet type=text/css href="{{ url_for('static', filename='main.css') }}"> + <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> + <script type="text/javascript" charset="utf-8"> + $(document).ready(function(){ + setTimeout(function(){ + $(".flash").fadeOut("slow", function () { + $(".flash").remove(); + }); + }, 2000); + $("body").bind("click", function(e) { + $("ul.menu-dropdown").hide(); + $('a.menu').parent("li").removeClass("open").children("ul.menu-dropdown").hide(); + }); + + $("a.menu").click(function(e) { + var $target = $(this); + var $parent = $target.parent("li"); + var $siblings = $target.siblings("ul.menu-dropdown"); + var $parentSiblings = $parent.siblings("li"); + if ($parent.hasClass("open")) { + $parent.removeClass("open"); + $siblings.hide(); + } else { + $parent.addClass("open"); + $siblings.show(); + } + $parentSiblings.children("ul.menu-dropdown").hide(); + $parentSiblings.removeClass("open"); + return false; + }); - {% block js %}{% endblock %} -}); -</script> + {% block js %}{% endblock %} + }); + </script> </head> <body> -<div class="container" class="span-24"> - <div id="title" class="span-20"> - <a href="/"><h1>Account manager ! <span class="small">Manage your shared expenses.</span></h1></a></div> - <div class="span-4 last" id="topmenu"> - {% block top_menu %}{% endblock %} - </div> - <hr> +<div class="topbar"> + <h3><a class="logo" href="{% if g.project %}{{ url_for("list_bills") }}{% endif %}">#! money?</a></h3> + {% if g.project %} + <ul> + <li class="active"><a href="">Bills</a></li> + <li><a href="">Archives</a></li> + </ul> + <ul class="nav secondary-nav"> + <li class="menu"> + <a href="#" class="menu">Options</a> + <ul class="menu-dropdown" style="display: none; "> + <li><a href="">Project settings</a></li> + <li class="divider"></li> + <li><a href="{{ url_for("exit") }}">Logout</a></li> + </ul> + </li> + </ul> + {% endif %} +</div> +<div class="container-fluid" style="margin-top: 40px"> + <div class="sidebar">{% block sidebar %}{% endblock %}</div> + <div class="content"> {% for message in get_flashed_messages() %} - <div class="flash">{{ message }}</div> + <div class="flash alert-message info"><p>{{ message }}</p></div> {% endfor %} {% block content %} {% endblock %} - <div id="footer"></div> + </div> </div> + </body> </html> diff --git a/budget/templates/list_bills.html b/budget/templates/list_bills.html index 94b0f8f..d73a95f 100644 --- a/budget/templates/list_bills.html +++ b/budget/templates/list_bills.html @@ -1,68 +1,71 @@ {% extends "layout.html" %} {% block js %} -// display the form when clicking on the "add bill" button -$('#add_bill_button').click(function(){ - $('#add_bill').show(200); - $(this).hide(); - $('#hide_bill_form').show(); - return false; -}); + // display the form when clicking on the "add bill" button + var show_form = function(){ + $('#bill-form').show(70); + $("#new-bill").hide(); + return false; + } + + // and provide a mechanism to hide it back + var hide_form = function(){ + $("#bill-form").hide(70); + $("#new-bill").show(); + return false; + } -// and provide a mechanism to hide it back -$('#hide_bill_form').click(function(){ - $('#add_bill').hide(200); - $(this).hide(); - $('#add_bill_button').show(); - return false; -}); + $('#new-bill').click(show_form); + $('#empty-new-bill').click(show_form); + $('#hide-bill-form').click(hide_form); + $('#cancel-form').click(hide_form); -// ask for confirmation before removing an user -$('a.remove').each(function(){ - $(this).hide(); - $(this).click(function(){ - return confirm("are you sure?"); + // ask for confirmation before removing an user + $('a.remove').each(function(){ + $(this).hide(); + $(this).click(function(){ + return confirm("are you sure?"); + }); }); -}); -// display the remove button on mouse over (and hide them per default) -$('.members li').hover(function(){ - $(this).children('a.remove').show(); -}, function(){ - $(this).children('a.remove').hide(); -}); + // display the remove button on mouse over (and hide them per default) + $('.balance tr').hover(function(){ + $(this).find('.remove').show(); + }, function(){ + $(this).find('.remove').hide(); + }); {% endblock %} -{% block top_menu %} -<ul> - <li><a href="{{ url_for("exit") }}">logout</a></li> -</ul> -{% endblock %} +{% block sidebar %} + <h2>Balance</h2> -{% block content %} -<div id="leftmenu" class="span-6"> - <ul class="members"> + <table class="balance"> {% set balance = g.project.get_balance() %} {% for member in g.project.active_members %} - <li class="{{ loop.cycle("even", "odd") }}"> - <span class="balance {% if balance[member] > 0 %}positive{% elif balance[member] < 0 %}negative{% endif %}">{{ balance[member] }}</span> - {{ member.name }} - <a class="remove" href="{{ url_for("remove_member", member_id=member.id) }}">delete</a></li> + <tr> + <td>{{ member.name }}</td> + <td class="{% if balance[member] > 0 %}positive{% elif balance[member] < 0 %}negative{% endif %}"> + {% if balance[member] > 0 %}+{% endif %}{{ balance[member] }} + </td> + <td> <a class="remove" href="{{ url_for("remove_member", member_id=member.id) }}">delete</a></td> + </tr> {% endfor %} - </ul> + </table> + <form action="{{ url_for("add_member") }}" method="post"> {{ forms.add_member(member_form) }} </form> -</div> -<div id="content" class="uniForm span-18 last"> - <a id="add_bill_button" class="awesome large green button fright" href="{{ url_for('add_bill') }}">Add a bill</a> - - <a id="hide_bill_form" class="awesome button fright" style="display: none;" href="#">Hide form</a> +{% endblock %} -<form id="add_bill" action="{{ url_for('add_bill') }}" method="post" style="width: 400px; display: none">{{ forms.add_bill(bill_form) }}</form> +{% block content %} + <a id="new-bill" href="" class="primary">Add a new bill</a> + <form id="bill-form" action="{{ url_for('add_bill') }}" method="post" style="display: none"> + <a id="hide-bill-form" href="#">hide this form</a> + {{ forms.add_bill(bill_form) }} +</form> {% if bills.count() > 0 %} - <table class="list_bills"> + <table class="list_bills common-table zebra-striped"> <thead><tr><th>When?</th><th>Who paid?</th><th>For what?</th><th>Owers</th><th>How much?</th><th>Actions</th></tr></thead> <tbody> {% for bill in bills %} @@ -80,7 +83,7 @@ $('.members li').hover(function(){ </table> {% else %} - <p>Nothing to list yet. You probably want to <a href="{{ url_for("add_bill") }}">add a bill</a> ?</p> + <p>Nothing to list yet. You probably want to <a id="empty-new-bill" href="{{ url_for("add_bill") }}">add a bill</a> ?</p> {% endif %} </div> {% endblock %} diff --git a/budget/web.py b/budget/web.py index 2c48318..fdb33a9 100644 --- a/budget/web.py +++ b/budget/web.py @@ -23,12 +23,30 @@ db.create_all() mail.init_app(app) -@app.route("/") -def home(): - project_form = ProjectForm() - auth_form = AuthenticationForm() - return render_template("home.html", project_form=project_form, - auth_form=auth_form, session=session) +@app.url_defaults +def add_project_id(endpoint, values): + if 'project_id' in values or not hasattr(g, 'project'): + return + if app.url_map.is_endpoint_expecting(endpoint, 'project_id'): + values['project_id'] = g.project.id + +@app.url_value_preprocessor +def pull_project(endpoint, values): + if not values: + values = {} + project_id = values.pop('project_id', None) + if project_id: + project = Project.query.get(project_id) + if not project: + raise RequestRedirect(url_for("create_project", project_id=project_id)) + if project.id in session and session[project.id] == project.password: + # add project into kwargs and call the original function + g.project = project + else: + # redirect to authentication page + raise RequestRedirect( + url_for("authenticate", redirect_url=request.url, + project_id=project_id)) @app.route("/authenticate", methods=["GET", "POST"]) def authenticate(redirect_url=None, project_id=None): @@ -68,6 +86,13 @@ def authenticate(redirect_url=None, project_id=None): return render_template("authenticate.html", form=form, create_project=create_project) +@app.route("/") +def home(): + project_form = ProjectForm() + auth_form = AuthenticationForm() + return render_template("home.html", project_form=project_form, + auth_form=auth_form, session=session) + @app.route("/create", methods=["GET", "POST"]) def create_project(): form = ProjectForm() @@ -96,31 +121,6 @@ def exit(): session.clear() return redirect(url_for("home")) -@app.url_defaults -def add_project_id(endpoint, values): - if 'project_id' in values or not hasattr(g, 'project'): - return - if app.url_map.is_endpoint_expecting(endpoint, 'project_id'): - values['project_id'] = g.project.id - -@app.url_value_preprocessor -def pull_project(endpoint, values): - if not values: - values = {} - project_id = values.pop('project_id', None) - if project_id: - project = Project.query.get(project_id) - if not project: - raise RequestRedirect(url_for("create_project", project_id=project_id)) - if project.id in session and session[project.id] == project.password: - # add project into kwargs and call the original function - g.project = project - else: - # redirect to authentication page - raise RequestRedirect( - url_for("authenticate", redirect_url=request.url, - project_id=project_id)) - @app.route("/<project_id>/invite", methods=["GET", "POST"]) def invite(): @@ -217,7 +217,7 @@ def edit_bill(bill_id): return redirect(url_for('list_bills')) form.fill(bill) - return render_template("edit_bill.html", form=form, bill_id=bill_id) + return render_template("add_bill.html", form=form, edit=True) @app.route("/<project_id>/compute") def compute_bills(): |
