aboutsummaryrefslogtreecommitdiff
path: root/budget
diff options
context:
space:
mode:
authorA.Avenel <avenel.alexandre@gmail.com>2013-02-19 15:36:37 +0100
committerA.Avenel <avenel.alexandre@gmail.com>2013-02-19 15:36:37 +0100
commitb410e48851b440c279366de1cda151bfef09d9b8 (patch)
tree1c428916c5a4049b8fc641ba7ea5694d3b7f615a /budget
parent79bd22c25cab0c7b869ae35a72def30a5c2a6dba (diff)
parenta4b8283fba6a6fd910e52b1f61afce2a9160d08d (diff)
downloadihatemoney-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.py2
-rw-r--r--budget/forms.py16
-rw-r--r--budget/models.py2
-rw-r--r--budget/requirements.txt2
-rw-r--r--budget/run.py2
-rw-r--r--budget/static/css/main.css4
-rw-r--r--budget/static/js/ihatemoney.js21
-rw-r--r--budget/templates/forms.html1
-rw-r--r--budget/tests.py8
-rw-r--r--budget/web.py6
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":