diff --git a/broadgauge/forms.py b/broadgauge/forms.py index 2ba7f8f..7313e42 100644 --- a/broadgauge/forms.py +++ b/broadgauge/forms.py @@ -132,6 +132,11 @@ 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( diff --git a/broadgauge/templates/macros.html b/broadgauge/templates/macros.html index 62a6b2b..fbec7ca 100644 --- a/broadgauge/templates/macros.html +++ b/broadgauge/templates/macros.html @@ -53,6 +53,9 @@

{{ workshop.ti {% elif workshop.status == 'confirmed' %}
Confirmed
{% endif %} + {% if not(org.is_member(user)) %} +
I want to sponsor + {% endif %} {% endmacro %} diff --git a/broadgauge/templates/workshops/index.html b/broadgauge/templates/workshops/index.html index 7293127..47e94e5 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) }}
{% if user and user.is_admin() %} 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 %} diff --git a/broadgauge/views/workshops.py b/broadgauge/views/workshops.py index 75321fa..3b5c82f 100644 --- a/broadgauge/views/workshops.py +++ b/broadgauge/views/workshops.py @@ -1,5 +1,6 @@ import web from ..models import User, Workshop, Organization +from ..sendmail import sendmail_with_template from ..template import render_template from ..flash import flash from .. import account @@ -13,6 +14,7 @@ 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", ) @@ -163,6 +165,50 @@ def POST_unhide_workshop(self, workshop, i): raise web.forbidden(render_template("permission_denied.html")) +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): workshop = get_workshop(id=workshop_id)