diff options
| author | A.Avenel <avenel.alexandre@gmail.com> | 2013-02-19 15:36:37 +0100 |
|---|---|---|
| committer | A.Avenel <avenel.alexandre@gmail.com> | 2013-02-19 15:36:37 +0100 |
| commit | b410e48851b440c279366de1cda151bfef09d9b8 (patch) | |
| tree | 1c428916c5a4049b8fc641ba7ea5694d3b7f615a /budget | |
| parent | 79bd22c25cab0c7b869ae35a72def30a5c2a6dba (diff) | |
| parent | a4b8283fba6a6fd910e52b1f61afce2a9160d08d (diff) | |
| download | ihatemoney-mirror-b410e48851b440c279366de1cda151bfef09d9b8.zip ihatemoney-mirror-b410e48851b440c279366de1cda151bfef09d9b8.tar.gz ihatemoney-mirror-b410e48851b440c279366de1cda151bfef09d9b8.tar.bz2 | |
Merge branch 'flask0.9' of github.com:aavenel/ihatemoney
Diffstat (limited to 'budget')
| -rw-r--r-- | budget/api.py | 2 | ||||
| -rw-r--r-- | budget/forms.py | 16 | ||||
| -rw-r--r-- | budget/models.py | 2 | ||||
| -rw-r--r-- | budget/requirements.txt | 2 | ||||
| -rw-r--r-- | budget/run.py | 2 | ||||
| -rw-r--r-- | budget/static/css/main.css | 4 | ||||
| -rw-r--r-- | budget/static/js/ihatemoney.js | 21 | ||||
| -rw-r--r-- | budget/templates/forms.html | 1 | ||||
| -rw-r--r-- | budget/tests.py | 8 | ||||
| -rw-r--r-- | budget/web.py | 6 |
10 files changed, 35 insertions, 29 deletions
diff --git a/budget/api.py b/budget/api.py index ec664b6..0c62b29 100644 --- a/budget/api.py +++ b/budget/api.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- from flask import Blueprint, request -from flask_rest import RESTResource, need_auth +from flask.ext.rest import RESTResource, need_auth from models import db, Project, Person, Bill from forms import (ProjectForm, EditProjectForm, MemberForm, diff --git a/budget/forms.py b/budget/forms.py index 4a810de..9b11085 100644 --- a/budget/forms.py +++ b/budget/forms.py @@ -1,7 +1,7 @@ -from flaskext.wtf import DateField, DecimalField, Email, Form, PasswordField, \ +from flask.ext.wtf import DateField, DecimalField, Email, Form, PasswordField, \ Required, SelectField, SelectMultipleField, SubmitField, TextAreaField, \ TextField, ValidationError -from flaskext.babel import lazy_gettext as _ +from flask.ext.babel import lazy_gettext as _ from flask import request from wtforms.widgets import html_params @@ -19,16 +19,14 @@ def select_multi_checkbox(field, ul_class='', **kwargs): choice_id = u'toggleField' js_function = u'toggle();' options = dict(kwargs, id=choice_id, onclick=js_function) - label = _("Select All/None") - html.append(u'<li><label for="%s">%s<span>%s</span></label></li>' - % (choice_id, '<input %s /> ' % html_params(**options), label)) + html.append(u'<p><a id="selectall" onclick="selectall()">%s</a> | <a id="selectnone" onclick="selectnone()">%s</a></p>'% (_("Select all"), _("Select none"))) 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><label for="%s">%s<span>%s</span></label></li>' + html.append(u'<p><label for="%s">%s<span>%s</span></label></p>' % (choice_id, '<input %s /> ' % html_params(**options), label)) html.append(u'</ul>') return u''.join(html) @@ -189,6 +187,6 @@ class InviteForm(Form): class CreateArchiveForm(Form): - start_date = DateField(_("Start date"), validators=[Required(), ]) - end_date = DateField(_("End date"), validators=[Required(), ]) - name = TextField(_("Name for this archive (optional)")) + name = TextField(_("Name for this archive (optional)"), validators=[]) + start_date = DateField(_("Start date"), validators=[Required()]) + end_date = DateField(_("End date"), validators=[Required()], default=datetime.now) diff --git a/budget/models.py b/budget/models.py index 1210e7c..8f57ffd 100644 --- a/budget/models.py +++ b/budget/models.py @@ -1,7 +1,7 @@ from collections import defaultdict from datetime import datetime -from flask_sqlalchemy import SQLAlchemy, BaseQuery +from flask.ext.sqlalchemy import SQLAlchemy, BaseQuery from flask import g from sqlalchemy import orm diff --git a/budget/requirements.txt b/budget/requirements.txt index cae3d1a..baeb33a 100644 --- a/budget/requirements.txt +++ b/budget/requirements.txt @@ -1,4 +1,4 @@ -flask +flask>=0.9 flask-wtf flask-sqlalchemy flask-mail diff --git a/budget/run.py b/budget/run.py index 2c2cab5..845192d 100644 --- a/budget/run.py +++ b/budget/run.py @@ -1,5 +1,5 @@ from flask import Flask, g, request, session -from flaskext.babel import Babel +from flask.ext.babel import Babel from raven.contrib.flask import Sentry from web import main, db, mail diff --git a/budget/static/css/main.css b/budget/static/css/main.css index c3c8ed9..3274241 100644 --- a/budget/static/css/main.css +++ b/budget/static/css/main.css @@ -189,6 +189,10 @@ tr.payer_line .balance-name{ position: absolute; } +.modal-body { + max-height:455px; +} + /* Fluid Offsets for Boostrap */ .row-fluid > [class*="span"]:not([class*="offset"]):first-child{margin-left:0;} diff --git a/budget/static/js/ihatemoney.js b/budget/static/js/ihatemoney.js index 6a813b9..24e82b7 100644 --- a/budget/static/js/ihatemoney.js +++ b/budget/static/js/ihatemoney.js @@ -1,17 +1,18 @@ - // Add a script to select all or non of the checkboxes in the add_bill form - function toggle() + // Add scripts to select all or non of the checkboxes in the add_bill form +function selectall() { var els = document.getElementsByName('payed_for'); for(var i =0;i<els.length;i++) { - if(document.getElementById('toggleField').checked) - { - els[i].checked=true; - } - else - { - els[i].checked=false; - } + els[i].checked=true; + } + } +function selectnone() + { + var els = document.getElementsByName('payed_for'); + for(var i =0;i<els.length;i++) + { + els[i].checked=false; } } diff --git a/budget/templates/forms.html b/budget/templates/forms.html index 8d15cb8..2904e0d 100644 --- a/budget/templates/forms.html +++ b/budget/templates/forms.html @@ -108,6 +108,7 @@ <fieldset> <legend>{{ _("Create an archive") }}</legend> {{ form.hidden_tag() }} + {{ input(form.name) }} {{ input(form.start_date) }} {{ input(form.end_date) }} </fieldset> diff --git a/budget/tests.py b/budget/tests.py index 7790bb4..d848112 100644 --- a/budget/tests.py +++ b/budget/tests.py @@ -22,9 +22,11 @@ class TestCase(unittest.TestCase): run.app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite:///memory" run.app.config['CSRF_ENABLED'] = False # simplify the tests self.app = run.app.test_client() - - models.db.init_app(run.app) - run.mail.init_app(run.app) + try: + models.db.init_app(run.app) + run.mail.init_app(run.app) + except: + pass models.db.app = run.app models.db.create_all() diff --git a/budget/web.py b/budget/web.py index b5a68a6..a9f70cb 100644 --- a/budget/web.py +++ b/budget/web.py @@ -11,8 +11,8 @@ and `add_project_id` for a quick overview) from flask import Blueprint, current_app, flash, g, redirect, \ render_template, request, session, url_for -from flaskext.mail import Mail, Message -from flaskext.babel import get_locale, gettext as _ +from flask.ext.mail import Mail, Message +from flask.ext.babel import get_locale, gettext as _ from smtplib import SMTPRecipientsRefused import werkzeug @@ -390,7 +390,7 @@ def settle_bill(): return render_template("settle_bill.html", bills=bills) -@main.route("/<project_id>/archives/create") +@main.route("/<project_id>/archives/create", methods=["GET", "POST"]) def create_archive(): form = CreateArchiveForm() if request.method == "POST": |
