summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.net>2013-10-15 23:32:39 +0200
committerRené 'Necoro' Neumann <necoro@necoro.net>2013-10-15 23:32:39 +0200
commit821ed2fd7fa725c7bd0353fd3f5a7e843198682d (patch)
treeffcac35060b31a26ac4933dc7fef87cff047e354
parente34e288bc5713a5a34958be8e678d2b23f4c7adb (diff)
downloadkosten-821ed2fd7fa725c7bd0353fd3f5a7e843198682d.tar.gz
kosten-821ed2fd7fa725c7bd0353fd3f5a7e843198682d.tar.bz2
kosten-821ed2fd7fa725c7bd0353fd3f5a7e843198682d.zip
Quotestyle
Diffstat (limited to '')
-rw-r--r--app/__init__.py4
-rw-r--r--app/forms.py50
-rw-r--r--app/model.py6
-rw-r--r--app/utils.py2
-rw-r--r--app/views/__init__.py38
-rw-r--r--app/views/categories.py8
-rw-r--r--app/views/consts.py22
-rw-r--r--app/views/expenses.py22
-rw-r--r--app/views/login.py8
-rw-r--r--fixers.py6
-rwxr-xr-xindex.py8
11 files changed, 88 insertions, 86 deletions
diff --git a/app/__init__.py b/app/__init__.py
index ca45a1d..c1e64af 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -1,13 +1,13 @@
from .flask_extend import Flask
# create app
-app = Flask("kosten")
+app = Flask('kosten')
# force autoescape in all files
app.jinja_env.autoescape = True
# load config
-app.config.from_pyfile("settings.py")
+app.config.from_pyfile('settings.py')
from .model import db
from .login import login_manager
diff --git a/app/forms.py b/app/forms.py
index 664b709..a4358a9 100644
--- a/app/forms.py
+++ b/app/forms.py
@@ -14,7 +14,7 @@ from . import login
today = datetime.date.today
-@app.template_test("hidden")
+@app.template_test('hidden')
def is_hidden_field(f):
return isinstance(f, HiddenField)
@@ -28,11 +28,11 @@ req = [v.input_required()]
class Form(_Form):
def __init__ (self, *args, **kwargs):
- self._msg = kwargs.pop("flash", u"Fehler im Formular!")
+ self._msg = kwargs.pop('flash', u"Fehler im Formular!")
_Form.__init__(self, *args, **kwargs)
def flash(self):
- flask.flash(self._msg, u"error")
+ flask.flash(self._msg, u'error')
def flash_validate (self):
if not self.validate():
@@ -45,48 +45,48 @@ class Form(_Form):
return self.is_submitted() and self.flash_validate()
class ExpenseForm(Form):
- date = DateField(u"Datum", req,
+ date = DateField(u'Datum', req,
format="%d.%m.%Y",
default=lambda: today())
- expense = DecimalField(u"Betrag", req,
- description=u"EUR",
+ expense = DecimalField(u'Betrag', req,
+ description=u'EUR',
places=2)
- description = StringField(u"Beschreibung", req)
+ description = StringField(u'Beschreibung', req)
- category = QuerySelectField(u"Kategorie",
- get_label="name")
+ category = QuerySelectField(u'Kategorie',
+ get_label='name')
class ConstForm(Form):
- start = DateField(u"Beginn", req,
- format="%m.%Y",
+ start = DateField(u'Beginn', req,
+ format='%m.%Y',
default=lambda: today())
- end = DateField(u"Ende", req,
- format="%m.%Y",
+ end = DateField(u'Ende', req,
+ format='%m.%Y',
default=lambda: today().replace(year = today().year + 1),
- description=u"(einschließlich)")
+ description=u'(einschließlich)')
- months = IntegerField(u"Zahlungsrythmus", req,
- description="Monate")
+ months = IntegerField(u'Zahlungsrythmus', req,
+ description='Monate')
- expense = DecimalField(u"Betrag", req,
- description=u"EUR",
+ expense = DecimalField(u'Betrag', req,
+ description=u'EUR',
places=2)
- description = StringField(u"Beschreibung", req)
+ description = StringField(u'Beschreibung', req)
- category = QuerySelectField(u"Kategorie",
- get_label="name")
+ category = QuerySelectField(u'Kategorie',
+ get_label='name')
- prev = QuerySelectField(u"Vorgänger",
- get_label="description",
+ prev = QuerySelectField(u'Vorgänger',
+ get_label='description',
allow_blank=True)
class LoginForm(Form):
- username = StringField(u"Username", req)
- pwd = PasswordField(u"Passwort", req)
+ username = StringField(u'Username', req)
+ pwd = PasswordField(u'Passwort', req)
def __init__(self, *args, **kwargs):
Form.__init__(self,*args, **kwargs)
diff --git a/app/model.py b/app/model.py
index 4c00878..dd68ef3 100644
--- a/app/model.py
+++ b/app/model.py
@@ -11,7 +11,9 @@ from . import app
db = SQLAlchemy(app)
-__all__ = ["db", "Category", "SingleExpense", "ConstExpense", "CatExpense", "MonthExpense"]
+__all__ = ['db', \
+ 'Category', 'SingleExpense', 'ConstExpense', \
+ 'CatExpense', 'MonthExpense']
Column = db.Column
ReqColumn = partial(Column, nullable = False)
@@ -127,7 +129,7 @@ class ConstExpense (Expense):
end = ReqColumn(db.Date, index = True)
prev_id = Column(db.Integer, db.ForeignKey('constexpense.id'))
- prev = db.relationship('ConstExpense', remote_side = "ConstExpense.id", uselist = False,
+ prev = db.relationship('ConstExpense', remote_side = 'ConstExpense.id', uselist = False,
backref=db.backref('next', uselist = False))
@property
diff --git a/app/utils.py b/app/utils.py
index 67b4897..3a08535 100644
--- a/app/utils.py
+++ b/app/utils.py
@@ -26,7 +26,7 @@ def templated(template=None):
return decorator
def redirect (target, **kwargs):
- code = kwargs.pop("_code", None)
+ code = kwargs.pop('_code', None)
url = url_for(target, **kwargs)
if code is None:
diff --git a/app/views/__init__.py b/app/views/__init__.py
index 275a6c9..101f393 100644
--- a/app/views/__init__.py
+++ b/app/views/__init__.py
@@ -12,52 +12,52 @@ from ..flask_extend import Blueprint
from flask import flash
__all__ = [
- "db", "app",
- "current_user", "login_required",
- "templated", "redirect",
- "Blueprint", "flash",
- "request", "url_for"
+ 'db', 'app',
+ 'current_user', 'login_required',
+ 'templated', 'redirect',
+ 'Blueprint', 'flash',
+ 'request', 'url_for'
]
# check for mobile visitors
-mobile_checks = ["J2ME", "Opera Mini"]
+mobile_checks = ['J2ME', 'Opera Mini']
app.add_template_global(zip)
@app.before_request
def handle_mobile():
- ua = request.environ.get("HTTP_USER_AGENT", "")
+ ua = request.environ.get('HTTP_USER_AGENT', '')
flask.g.is_mobile = any((x in ua) for x in mobile_checks)
-@app.template_filter("static_url")
+@app.template_filter('static_url')
def static_url(s, **kwargs):
- return url_for("static", filename=s, **kwargs)
+ return url_for('static', filename=s, **kwargs)
-@app.template_filter("eur")
+@app.template_filter('eur')
def eur(s):
- return (u"%s EUR" % s)
+ return (u'%s EUR' % s)
-@app.template_filter("date")
-def format_date(s, format="%Y/%m"):
- if hasattr(s, "date"):
+@app.template_filter('date')
+def format_date(s, format='%Y/%m'):
+ if hasattr(s, 'date'):
return s.date.strftime(format)
else:
return s.strftime(format)
@app.errorhandler(404)
def page_not_found (error):
- return render_template("404.jinja", page = request.path), 404
+ return render_template('404.jinja', page = request.path), 404
# Now import the views
from . import categories, consts, expenses, login, api
app.register_blueprint(login.mod)
app.register_blueprint(expenses.mod)
-app.register_blueprint(consts.mod, url_prefix="/const")
-app.register_blueprint(categories.mod, url_prefix="/cat")
+app.register_blueprint(consts.mod, url_prefix='/const')
+app.register_blueprint(categories.mod, url_prefix='/cat')
for m in api.mods:
- app.register_blueprint(m, url_prefix="/api")
+ app.register_blueprint(m, url_prefix='/api')
-app.add_url_rule("/", endpoint = "index", build_only = True)
+app.add_url_rule('/', endpoint = 'index', build_only = True)
diff --git a/app/views/categories.py b/app/views/categories.py
index 1857737..347828b 100644
--- a/app/views/categories.py
+++ b/app/views/categories.py
@@ -6,22 +6,22 @@ from ..model import Category
mod = Blueprint('categories', __name__)
-@mod.route("/", methods=("GET", "POST"))
+@mod.route('/', methods=('GET', 'POST'))
@login_required
@templated()
def manage ():
- if request.method == "GET":
+ if request.method == 'GET':
categories = Category.of(current_user).order_by(Category.name).all()
return { 'cats' : categories }
else:
for id, name in request.form.iteritems():
- if id.startswith("n-"):
+ if id.startswith('n-'):
db.session.add(Category(name = name, user = current_user))
else:
Category.get(id).name = name
db.session.commit()
- return redirect(".manage")
+ return redirect('.manage')
diff --git a/app/views/consts.py b/app/views/consts.py
index d41e683..20b3db1 100644
--- a/app/views/consts.py
+++ b/app/views/consts.py
@@ -28,7 +28,7 @@ def const_form(cur=None, obj=None):
return form
-@mod.route("/")
+@mod.route('/')
@login_required
@templated()
def list ():
@@ -51,35 +51,35 @@ def list ():
return { 'current': current, 'old': old, 'future': future }
-@mod.route("/<int:id>")
+@mod.route('/<int:id>')
@login_required
@templated()
def show(id):
return { 'exp': ConstExpense.get(id) }
-@mod.route("/edit/<int:id>", methods=("GET", "POST"))
+@mod.route('/edit/<int:id>', methods=('GET', 'POST'))
@login_required
@templated()
def edit(id):
exp = ConstExpense.get(id)
form = const_form(exp)
- if request.method == "POST":
- if "deleteB" in request.form:
+ if request.method == 'POST':
+ if 'deleteB' in request.form:
db.session.delete(exp)
db.session.commit()
- return redirect(".list")
+ return redirect('.list')
elif form.validate(): # change
form.populate_obj(exp)
db.session.commit()
- return redirect(".show", id = id)
+ return redirect('.show', id = id)
return { 'form': form }
-@mod.route("/add/from/<int:other>")
+@mod.route('/add/from/<int:other>')
@login_required
-@templated(".add")
+@templated('.add')
def add_from(other):
exp = ConstExpense() # needed to initialize 'CE.next'
@@ -96,7 +96,7 @@ def add_from(other):
return { 'form': form }
-@mod.route("/add/", methods=("GET", "POST"))
+@mod.route('/add/', methods=('GET', 'POST'))
@login_required
@templated()
def add ():
@@ -109,6 +109,6 @@ def add ():
exp.user = current_user
db.session.add(exp)
db.session.commit()
- return redirect(".show", id = exp.id)
+ return redirect('.show', id = exp.id)
return { 'form': form }
diff --git a/app/views/expenses.py b/app/views/expenses.py
index 8946377..f5181e9 100644
--- a/app/views/expenses.py
+++ b/app/views/expenses.py
@@ -53,20 +53,20 @@ def next_date(exp):
else:
return exp.date.replace(month = exp.date.month + 1)
-@mod.app_template_test("last_date")
+@mod.app_template_test('last_date')
def is_last(exp):
return exp.date >= datetime.date.today().replace(day = 1)
-@mod.route("/<int(fixed_digits=4):year>/<int(fixed_digits=2):month>")
+@mod.route('/<int(fixed_digits=4):year>/<int(fixed_digits=2):month>')
@login_required
-@templated(".show")
+@templated('.show')
def show_date(year, month):
c,p = calc_month_and_pie(year, month)
return { 'exps' : [c], 'pies' : [p] }
-mod.add_url_rule("/<path:p>", endpoint = "show_date_str", build_only = True)
+mod.add_url_rule('/<path:p>', endpoint = 'show_date_str', build_only = True)
-@mod.route("/")
+@mod.route('/')
@login_required
@templated()
def show():
@@ -80,15 +80,15 @@ def show():
return { 'exps' : [first, second], 'pies': [pfirst, psecond] }
-@mod.route("/edit/<int:id>", methods=("GET", "POST"))
+@mod.route('/edit/<int:id>', methods=('GET', 'POST'))
@login_required
@templated()
def edit(id):
exp = SingleExpense.get(id)
form = expense_form(exp)
- if request.method == "POST":
- if "deleteB" in request.form:
+ if request.method == 'POST':
+ if 'deleteB' in request.form:
db.session.delete(exp)
elif form.validate(): # change
@@ -98,11 +98,11 @@ def edit(id):
return { 'form': form }
db.session.commit()
- return redirect("index")
+ return redirect('index')
return { 'form': form }
-@mod.route("/add/", methods=("GET", "POST"))
+@mod.route('/add/', methods=('GET', 'POST'))
@login_required
@templated()
def add():
@@ -117,6 +117,6 @@ def add():
db.session.add(exp)
db.session.commit()
- return redirect(".add")
+ return redirect('.add')
return { 'form': form }
diff --git a/app/views/login.py b/app/views/login.py
index 8815626..333a330 100644
--- a/app/views/login.py
+++ b/app/views/login.py
@@ -10,20 +10,20 @@ from flask import redirect
mod = Blueprint('login', __name__)
-@mod.route("/login", methods=("GET", "POST"))
+@mod.route('/login', methods=('GET', 'POST'))
@templated()
def login():
form = LoginForm(flash=u"Login fehlgeschlagen!")
if form.validate_on_submit():
login_user(form.user)
- return redirect(request.args.get("next") or url_for("index"))
+ return redirect(request.args.get('next') or url_for('index'))
return { 'form': form }
-@mod.route("/logout")
+@mod.route('/logout')
def logout():
logout_user()
- return redirect(url_for(".login"))
+ return redirect(url_for('.login'))
login_manager.login_view = 'login.login'
diff --git a/fixers.py b/fixers.py
index 822f6b8..118c225 100644
--- a/fixers.py
+++ b/fixers.py
@@ -8,11 +8,11 @@ class ScriptNameFixer(object):
self.app = app
def __call__ (self, environ, start_response):
- uri = unquote(environ["REQUEST_URI"]).split('?', 1)[0]
- path = environ["PATH_INFO"]
+ uri = unquote(environ['REQUEST_URI']).split('?', 1)[0]
+ path = environ['PATH_INFO']
if uri.endswith(path):
- environ["SCRIPT_NAME"] = uri[:-len(path)]
+ environ['SCRIPT_NAME'] = uri[:-len(path)]
return self.app(environ, start_response)
diff --git a/index.py b/index.py
index 7ac98c0..af0516b 100755
--- a/index.py
+++ b/index.py
@@ -10,11 +10,11 @@ try:
except IndexError:
cmd = None
-if cmd == "create":
+if cmd == 'create':
db.create_all()
-elif cmd == "drop":
+elif cmd == 'drop':
db.drop_all()
-elif cmd == "compile":
- app.jinja_env.compile_templates("comp", zip = None)
+elif cmd == 'compile':
+ app.jinja_env.compile_templates('comp', zip = None)
else:
app.run()