diff options
Diffstat (limited to 'budget')
| -rw-r--r-- | budget/static/awesome-buttons.css | 106 | ||||
| -rw-r--r-- | budget/static/awesome.css | 29 | ||||
| -rw-r--r-- | budget/static/uniform/blue.uni-form.css | 4 | ||||
| -rw-r--r-- | budget/templates/add_bill.html | 25 | ||||
| -rw-r--r-- | budget/templates/add_member.html | 4 | ||||
| -rw-r--r-- | budget/templates/bill_form.html | 11 | ||||
| -rw-r--r-- | budget/templates/create_project.html | 16 | ||||
| -rw-r--r-- | budget/templates/forms.html | 43 | ||||
| -rw-r--r-- | budget/templates/home.html | 38 | ||||
| -rw-r--r-- | budget/templates/layout.html | 1 | ||||
| -rw-r--r-- | budget/templates/member_form.html | 6 | ||||
| -rw-r--r-- | budget/utils.py | 4 |
12 files changed, 71 insertions, 216 deletions
diff --git a/budget/static/awesome-buttons.css b/budget/static/awesome-buttons.css deleted file mode 100644 index 7b38e13..0000000 --- a/budget/static/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.css b/budget/static/awesome.css deleted file mode 100644 index 47c624a..0000000 --- a/budget/static/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/uniform/blue.uni-form.css b/budget/static/uniform/blue.uni-form.css index adb5ff6..c1f70ec 100644 --- a/budget/static/uniform/blue.uni-form.css +++ b/budget/static/uniform/blue.uni-form.css @@ -35,8 +35,10 @@ .uniForm legend{ font-weight: bold; font-size: 100%; margin: 0; padding: 1.5em 0; } - .uniForm .ctrlHolder{ padding: 1em; } .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 */ diff --git a/budget/templates/add_bill.html b/budget/templates/add_bill.html index f959a64..d844b6a 100644 --- a/budget/templates/add_bill.html +++ b/budget/templates/add_bill.html @@ -5,26 +5,11 @@ {% endblock %} {% block content %} -<h2>Let's add a bill</h2> +<h2>Add a new bill</h2> -{% if form.errors %} - <p class=error><strong>Your form contains errors.</strong></p> - <ul> - {% for field, errors in form.errors.items() %} - {% for error in errors %} - <li>{{ field }} : {{ error }}</li> - {% endfor %} - {% endfor %} - </ul> -{% endif %} - - <form action="{{ url_for('add_bill', project_id=project.id) }}" method=post class="container span-24 add-bill"> - {{ form.hidden_tag() }} - - <p>{{ form.payer.label }}<br /> {{ form.payer }}</p> - <p>{{ form.what.label }}<br /> {{ form.what }}</p> - <p>{{ form.amount.label }}<br />{{ form.amount }}</p> - <p>{{ form.payed_for.label }}<br /> {{ form.payed_for(multiple=True) }}</p> - <p>{{ form.submit }}</p> +<div class="container span-24 add-bill uniForm" style="width: 400px"> + <form action="{{ url_for('add_bill', project_id=project.id) }}" method="post" class=uniForm"> + {{ forms.add_bill(form) }} </form> +</div> {% endblock %} diff --git a/budget/templates/add_member.html b/budget/templates/add_member.html index eabbc4f..8d24aee 100644 --- a/budget/templates/add_member.html +++ b/budget/templates/add_member.html @@ -1,4 +1,6 @@ {% extends "layout.html" %} {% block content %} -{% include "member_form.html" %} + <form action="{{ url_for("add_member", project_id=project.id) }}" method="post"> + {{ forms.add_member(form) }} + </form> {% endblock %} diff --git a/budget/templates/bill_form.html b/budget/templates/bill_form.html deleted file mode 100644 index 61b4004..0000000 --- a/budget/templates/bill_form.html +++ /dev/null @@ -1,11 +0,0 @@ -{% import "forms.html" as forms %} -<div class="uniForm"> -<form action="{{ url_for('add_bill', project_id=project.id) }}" method="post" class=uniForm"> - {{ form.hidden_tag() }} - {{ forms.input(form.what) }} - {{ forms.input(form.payer) }} - {{ forms.input(form.amount) }} - {{ forms.input(form.payed_for, multiple=True) }} - <p>{{ form.submit }}</p> -</form> -</div> diff --git a/budget/templates/create_project.html b/budget/templates/create_project.html index b26da2d..6593822 100644 --- a/budget/templates/create_project.html +++ b/budget/templates/create_project.html @@ -2,20 +2,10 @@ {% block content %} <h2>Create a new project</h2> - -{% if form.errors %} - <p class=error><strong>Your form contains errors.</strong></p> - <ul>{% for error in form.errors %}<li>{{ error }}</li>{% endfor %}</ul> -{% endif %} - +<div class="uniForm"> <form method="post" class="container span-24 add-bill"> - {{ form.hidden_tag() }} - - <p>{{ form.name.label }}<br /> {{ form.name }}</p> - <p>{{ form.id.label }}<br /> {{ form.id }}</p> - <p>{{ form.password.label }}<br /> {{ form.password }}</p> - <p>{{ form.contact_email.label }}<br /> {{ form.contact_email }}</p> - <p>{{ form.submit }}</p> + {{ forms.create_project(form) }} </form> +</div> {% endblock %} diff --git a/budget/templates/forms.html b/budget/templates/forms.html index 234143b..3c0e011 100644 --- a/budget/templates/forms.html +++ b/budget/templates/forms.html @@ -11,3 +11,46 @@ {% endif %} </div> {% endmacro %} + +{% macro authenticate(form) %} + + {% include "display_errors.html" %} + {{ form.hidden_tag() }} + {{ input(form.id) }} + {{ input(form.password) }} + {{ input(form.submit) }} + +{% endmacro %} + +{% macro create_project(form) %} + + {% include "display_errors.html" %} + {{ form.hidden_tag() }} + {{ input(form.name) }} + {{ input(form.id) }} + {{ input(form.password) }} + {{ input(form.contact_email) }} + {{ input(form.submit) }} + +{% endmacro %} + +{% macro add_bill(form) %} + + {% include "display_errors.html" %} + {{ form.hidden_tag() }} + {{ input(form.what) }} + {{ input(form.payer) }} + {{ input(form.amount) }} + {{ input(form.payed_for, multiple=True) }} + {{ input(form.submit) }} + +{% endmacro %} + +{% macro add_member(form) %} + + {% include "display_errors.html" %} + {{ form.hidden_tag() }} + {{ input(form.name) }} + {{ input(form.submit) }} + +{% endmacro %} diff --git a/budget/templates/home.html b/budget/templates/home.html index ae36d4a..21de4f1 100644 --- a/budget/templates/home.html +++ b/budget/templates/home.html @@ -1,37 +1,21 @@ {% extends "layout.html" %} {% block content %} + <h2>Welcome on the budget manager</h2> -<div class="span-12 prepend-2"> - <form action="{{ url_for('authenticate') }}" method="post" accept-charset="utf-8"> +<div class="span-12 prepend-2 uniForm" > + <form action="{{ url_for('authenticate') }}" method="post" style="width: 300px"> <h3>Log to an existing project...</h3> - - {{ auth_form.hidden_tag() }} - - <p>{{ auth_form.id.label }}<br /> {{ auth_form.id }}</p> - <p>{{ auth_form.password.label }}<br /> {{ auth_form.password }}</p> - <p>{{ auth_form.submit }}</p> + {{ forms.authenticate(auth_form) }} </form> - {% if 'projects' in session %} - <h3>Recently visisted projects</h3> - <ul> - {% for id, name in session['projects'] %} - <li><a href="{{ url_for("list_bills", project_id=id) }}">{{ name }}</a></li> - {% endfor %} - </ul> - {% endif %} + {% include "recent_projects.html" %} </div> -<form class="span-10 last" action="{{ url_for('create_project') }}" method="post" class="container span-24 add-bill"> - <h3>...or create a new one</h3> - - {{ project_form.hidden_tag() }} - - <p>{{ project_form.name.label }}<br /> {{ project_form.name }}</p> - <p>{{ project_form.id.label }}<br /> {{ project_form.id }}</p> - <p>{{ project_form.password.label }}<br /> {{ project_form.password }}</p> - <p>{{ project_form.contact_email.label }}<br /> {{ project_form.contact_email }}</p> - <p>{{ project_form.submit }}</p> -</form> +<div class="span-10 last uniForm" > + <form action="{{ url_for('create_project') }}" method="post" style="width: 300px"> + <h3>...or create a new one</h3> + {{ forms.create_project(project_form) }}</div> + </form> +</div> {% endblock %} diff --git a/budget/templates/layout.html b/budget/templates/layout.html index cd0fca4..34e7f8b 100644 --- a/budget/templates/layout.html +++ b/budget/templates/layout.html @@ -1,3 +1,4 @@ +{% import "forms.html" as forms %} <!DOCTYPE html> <html> <head> diff --git a/budget/templates/member_form.html b/budget/templates/member_form.html deleted file mode 100644 index 6eb4575..0000000 --- a/budget/templates/member_form.html +++ /dev/null @@ -1,6 +0,0 @@ -{% include "display_errors.html" %} -<form action="{{ url_for("add_member", project_id=project.id) }}" method="post"> - {{ form.hidden_tag() }} - <p>{{ form.name.label }}<br /> {{ form.name }}</p> - <p>{{ form.submit }}</p> -</form> diff --git a/budget/utils.py b/budget/utils.py index 20989e9..c97b3ad 100644 --- a/budget/utils.py +++ b/budget/utils.py @@ -4,10 +4,10 @@ from flask import redirect, url_for, session, request from models import Bill, Project from forms import BillForm -def get_billform_for(project_id): +def get_billform_for(project): """Return an instance of BillForm configured for a particular project.""" form = BillForm() - payers = [(str(m.id), m.name) for m in Project.query.get(project_id).members] + payers = [(str(m.id), m.name) for m in project.active_members] form.payed_for.choices = form.payer.choices = payers return form |
