1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/ihatemoney_ynh.git synced 2024-09-03 19:26:15 +02:00

Merge pull request #80 from feth/master

not much change
This commit is contained in:
Alexis Metaireau 2012-02-26 10:52:04 -08:00
commit 1dbfc554c8

View file

@ -3,6 +3,7 @@ from collections import defaultdict
from flask import *
from flaskext.mail import Mail, Message
from flaskext.babel import get_locale, gettext as _
from smtplib import SMTPRecipientsRefused
import werkzeug
# local modules
@ -17,7 +18,7 @@ Contains all the interaction logic with the end user (except forms which
are directly handled in the forms module.
Basically, this blueprint takes care of the authentication and provides
some shortcuts to make your life better when coding (see `pull_project`
some shortcuts to make your life better when coding (see `pull_project`
and `add_project_id` for a quick overview)
"""
@ -65,11 +66,11 @@ def authenticate(project_id=None):
form = AuthenticationForm()
if not form.id.data and request.args.get('project_id'):
form.id.data = request.args['project_id']
project_id = form.id.data
project_id = form.id.data
project = Project.query.get(project_id)
create_project = False # We don't want to create the project by default
if not project:
# But if the user try to connect to an unexisting project, we will
# But if the user try to connect to an unexisting project, we will
# propose him a link to the creation form.
if request.method == "POST":
form.validate()
@ -98,14 +99,14 @@ def authenticate(project_id=None):
setattr(g, 'project', project)
return redirect(url_for(".list_bills"))
return render_template("authenticate.html", form=form,
return render_template("authenticate.html", form=form,
create_project=create_project)
@main.route("/")
def home():
project_form = ProjectForm()
auth_form = AuthenticationForm()
return render_template("home.html", project_form=project_form,
return render_template("home.html", project_form=project_form,
auth_form=auth_form, session=session)
@main.route("/create", methods=["GET", "POST"])
@ -133,19 +134,26 @@ def create_project():
# send reminder email
g.project = project
message_title = _("You have just created '%(project)s' to share your expenses",
project=g.project.name)
message_body = render_template("reminder_mail.%s" % get_locale().language)
msg = Message(message_title,
body=message_body,
msg = Message(message_title,
body=message_body,
recipients=[project.contact_email])
mail.send(msg)
try:
mail.send(msg)
except SMTPRecipientsRefused:
msg_compl = 'Problem sending mail. '
# TODO: destroy the project and cancel instead?
else:
msg_compl = ''
# redirect the user to the next step (invite)
flash(_("The project identifier is %(project)s", project=project.id))
flash(_("%(msg_compl)sThe project identifier is %(project)s",
msg_compl=msg_compl, project=project.id))
return redirect(url_for(".invite", project_id=project.id))
return render_template("create_project.html", form=form)
@ -159,9 +167,9 @@ def remind_password():
project = Project.query.get(form.id.data)
# send the password reminder
mail.send(Message("password recovery",
mail.send(Message("password recovery",
body=render_template("password_reminder.%s" % get_locale().language,
project=project),
project=project),
recipients=[project.contact_email]))
flash(_("a mail has been sent to you with the password"))
@ -207,7 +215,7 @@ def demo():
"""
project = Project.query.get("demo")
if not project:
project = Project(id="demo", name=u"demonstration", password="demo",
project = Project(id="demo", name=u"demonstration", password="demo",
contact_email="demo@notmyidea.org")
db.session.add(project)
db.session.commit()
@ -220,17 +228,17 @@ def invite():
form = InviteForm()
if request.method == "POST":
if request.method == "POST":
if form.validate():
# send the email
message_body = render_template("invitation_mail.%s" % get_locale().language)
message_title = _("You have been invited to share your expenses for %(project)s",
message_title = _("You have been invited to share your expenses for %(project)s",
project=g.project.name)
msg = Message(message_title,
body=message_body,
recipients=[email.strip()
msg = Message(message_title,
body=message_body,
recipients=[email.strip()
for email in form.emails.data.split(",")])
mail.send(msg)
flash(_("Your invitations have been sent"))
@ -246,7 +254,7 @@ def list_bills():
bill_form.payer.data = session['last_selected_payer']
bills = g.project.get_bills()
return render_template("list_bills.html",
return render_template("list_bills.html",
bills=bills, member_form=MemberForm(g.project),
bill_form=bill_form,
add_bill=request.values.get('add_bill', False)
@ -359,7 +367,7 @@ def compute_bills():
@main.route("/<project_id>/archives/create")
def create_archive():
form = CreateArchiveForm()
form = CreateArchiveForm()
if request.method == "POST":
if form.validate():
pass