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 %}
+
+
+
+{% 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)