From c40fa75bbc04f3f030a916fe316cafa207060b42 Mon Sep 17 00:00:00 2001 From: Marius Avram Date: Sun, 21 Jun 2015 16:37:51 +0100 Subject: [PATCH 1/4] added sponsorship messaging --- broadgauge/forms.py | 6 +++ broadgauge/templates/macros.html | 5 ++- broadgauge/templates/workshops/index.html | 8 ++-- broadgauge/views/workshops.py | 46 +++++++++++++++++++++++ 4 files changed, 60 insertions(+), 5 deletions(-) diff --git a/broadgauge/forms.py b/broadgauge/forms.py index c45267d..1a59799 100644 --- a/broadgauge/forms.py +++ b/broadgauge/forms.py @@ -100,6 +100,12 @@ class ContactForm(BaseForm): subject = StringField('Subject', [validators.Required()]) message = TextAreaField('Your Question', [validators.Required()]) +class SponsorForm(BaseForm): + email = StringField('E-mail Address', [validators.Required(), validators.Email()]) + to = StringField('Workshop owner', [validators.Required(), validators.Email()]) + subject = StringField('Subject', [validators.Required()]) + message = TextAreaField('Message. Type of sponsorship: food, venue, money...', [validators.Required()]) + class AdminSendmailForm(BaseForm): to = SelectField("Send Mail To", choices=[('self', 'To yourself'), ('trainers', 'All trainers'), diff --git a/broadgauge/templates/macros.html b/broadgauge/templates/macros.html index ff55cd3..01a60ca 100644 --- a/broadgauge/templates/macros.html +++ b/broadgauge/templates/macros.html @@ -47,6 +47,9 @@

{{ workshop.ti {% elif workshop.status == 'confirmed' %}
Confirmed
{% endif %} + {% if not(org.is_member(user)) %} +
I want to sponsor + {% endif %} {% endmacro %} @@ -60,4 +63,4 @@

{{ workshop.ti {% else %} None found. {% endif %} -{% endmacro %} \ No newline at end of file +{% endmacro %} diff --git a/broadgauge/templates/workshops/index.html b/broadgauge/templates/workshops/index.html index 81a6d7d..5ff8b7f 100644 --- a/broadgauge/templates/workshops/index.html +++ b/broadgauge/templates/workshops/index.html @@ -6,15 +6,15 @@

Workshops

Upcoming

- {{ workshop_list(pending_workshops) }} + {{ workshop_list(pending_workshops, user) }}

Confirmed

- {{ workshop_list(upcoming_workshops) }} + {{ workshop_list(upcoming_workshops, user) }}

Completed

- {{ workshop_list(completed_workshops) }} + {{ workshop_list(completed_workshops, user) }}
-{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/broadgauge/views/workshops.py b/broadgauge/views/workshops.py index 295470a..d6d1a0a 100644 --- a/broadgauge/views/workshops.py +++ b/broadgauge/views/workshops.py @@ -1,5 +1,6 @@ import web from ..models import User, Workshop +from ..sendmail import sendmail_with_template from ..template import render_template from ..flash import flash from .. import account @@ -8,11 +9,13 @@ import logging import datetime + logger = logging.getLogger(__name__) urls = ( "/workshops", "workshop_list", "/workshops/(\d+)", "workshop_view", + "/workshops/(\d+)/sponsor", "workshop_sponsor", "/workshops/(\d+)/edit", "workshop_edit", "/workshops/(\d+)/set-trainer", "workshop_set_trainer", ) @@ -110,6 +113,49 @@ def POST_add_comment(self, workshop, i): flash("Done! Your comment has been added to this workshop.") raise web.seeother("/workshops/{}".format(workshop.id)) +class workshop_sponsor: + def GET(self, workshop_id): + #Getting the workshop and organization for that workshop + workshop = get_workshop(id=workshop_id) + org = workshop.get_org() + + form = forms.SponsorForm() + user = account.get_current_user() + if user: + form.email.data = user.email + + #Fetching the email of the admin user for the organisation + members = org.get_members() + email = '' + for member, role in members: + if member.is_admin: + email = member['email'] + break + if email != '': + form.to.data = email + form.subject.data = "Sponsorship for " + workshop.title + return render_template("workshops/sponsor.html", workshop=workshop, + org=org, form=form) + else: + flash("There is no valid email for this organization.") + raise web.seeother("/workshops") + + #Sending email to admin + def POST(self, workshop_id): + i = web.input() + form = forms.SponsorForm(i) + if form.validate(): + sendmail_with_template("emails/contact.html", + to=form.to.data, + subject=form.subject.data, + message=form.message.data, + headers={'Reply-To': form.email.data}) + return render_template("message.html", + title="Sent!", + message="Thank you for sponsoring us. We'll get back to you shortly.") + else: + return render_template("workshops/sponsor.html", form=form) + class workshop_edit: def GET(self, workshop_id): From 0781a6725c4fba2d95a9eb3d873931d4f4353788 Mon Sep 17 00:00:00 2001 From: Marius Avram Date: Fri, 10 Jul 2015 21:57:54 +0100 Subject: [PATCH 2/4] added workshops sponsors templates --- broadgauge/templates/workshops/sponsor.html | 17 +++++++++++++++++ .../templates/workshops/workshop_sponsor.html | 8 ++++++++ 2 files changed, 25 insertions(+) create mode 100644 broadgauge/templates/workshops/sponsor.html create mode 100644 broadgauge/templates/workshops/workshop_sponsor.html diff --git a/broadgauge/templates/workshops/sponsor.html b/broadgauge/templates/workshops/sponsor.html new file mode 100644 index 0000000..0c00dab --- /dev/null +++ b/broadgauge/templates/workshops/sponsor.html @@ -0,0 +1,17 @@ +{% from "forms.html" import render_field %} +{% extends "base.html" %} +{% block content %} +

Sponsor {{workshop.title}}

+ +
+
+
+ {{ render_field(form.to, disabled=true) }} + {{ render_field(form.email, disabled=true) }} + {{ render_field(form.subject) }} + {{ render_field(form.message, rows=5) }} + +
+
+
+{% endblock %} diff --git a/broadgauge/templates/workshops/workshop_sponsor.html b/broadgauge/templates/workshops/workshop_sponsor.html new file mode 100644 index 0000000..3659036 --- /dev/null +++ b/broadgauge/templates/workshops/workshop_sponsor.html @@ -0,0 +1,8 @@ +{% extends "base.html" %} +{% block content %} +

Sponsor

+ +
+ Form +
+{% endblock %} From 0ee15b37d5a2e03ac35bc9b9a6408fba7776667b Mon Sep 17 00:00:00 2001 From: Marius Avram Date: Fri, 10 Jul 2015 21:59:14 +0100 Subject: [PATCH 3/4] removed unnecessary line --- broadgauge/views/workshops.py | 1 - 1 file changed, 1 deletion(-) diff --git a/broadgauge/views/workshops.py b/broadgauge/views/workshops.py index d6d1a0a..1f38668 100644 --- a/broadgauge/views/workshops.py +++ b/broadgauge/views/workshops.py @@ -9,7 +9,6 @@ import logging import datetime - logger = logging.getLogger(__name__) urls = ( From 21e515438b4224f9127438396cc5ec9f9f5386be Mon Sep 17 00:00:00 2001 From: Marius Avram Date: Fri, 10 Jul 2015 22:18:06 +0100 Subject: [PATCH 4/4] tiny change --- broadgauge/views/workshops.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/broadgauge/views/workshops.py b/broadgauge/views/workshops.py index a37262e..3b5c82f 100644 --- a/broadgauge/views/workshops.py +++ b/broadgauge/views/workshops.py @@ -129,7 +129,7 @@ def POST_confirm_trainer(self, workshop, i): "Done! Confirmed {} as trainer for this workshop.".format( trainer.name ) -: ) + ) raise web.seeother("/workshops/{}".format(workshop.id)) else: return render_template("workshops/view.html", workshop=workshop) @@ -143,6 +143,7 @@ def POST_add_comment(self, workshop, i): signals.new_comment.send(comment) flash("Done! Your comment has been added to this workshop.") raise web.seeother("/workshops/{}".format(workshop.id)) + def POST_hide_workshop(self, workshop, i): user = account.get_current_user() if user and user.is_admin():