Skip to content
Browse files

Remove staffing requirement and make members more responsible

  • Loading branch information...
1 parent b84b533 commit 4d85afa16482a58d223be0b36e4479e8ab2591cd @dustball dustball committed Sep 9, 2010
Showing with 25 additions and 18 deletions.
  1. +2 −1 main.py
  2. +10 −6 models.py
  3. +1 −1 templates/approved.html
  4. +3 −3 templates/base.html
  5. +8 −6 templates/new.html
  6. +1 −1 templates/pending.html
View
3 main.py
@@ -10,7 +10,7 @@
from pprint import pprint
from datetime import datetime, timedelta
-from models import Event, Feedback, ROOM_OPTIONS, GUESTS_PER_STAFF, PENDING_LIFETIME
+from models import Event, Feedback, ROOM_OPTIONS, PENDING_LIFETIME
from utils import username, human_username, set_cookie, local_today, is_phone_valid, UserRights
from notices import *
@@ -167,6 +167,7 @@ class NewHandler(webapp.RequestHandler):
@util.login_required
def get(self):
user = users.get_current_user()
+ human = human_username(user)
if user:
logout_url = users.create_logout_url('/')
else:
View
16 models.py
@@ -16,7 +16,7 @@
('Cubby 3', 2),
('Upstairs Office', 2),
('Front Area', 20))
-GUESTS_PER_STAFF = 25
+# GUESTS_PER_STAFF = 25
PENDING_LIFETIME = 30 # days
class Event(db.Model):
@@ -57,6 +57,9 @@ def get_pending_list(cls):
.filter('status IN', ['pending', 'understaffed', 'onhold', 'expired']) \
.order('start_time')
+ def owner(self):
+ return human_username(self.member)
+
def stafflist(self):
return to_sentence_list(map(human_username, self.staff))
@@ -67,11 +70,12 @@ def is_staffed(self):
return len(self.staff) >= self.staff_needed()
def staff_needed(self):
- if self.estimated_size.isdigit():
- return int(self.estimated_size) / GUESTS_PER_STAFF
- else:
- # invalid data; just return something reasonable
- return 2
+ return 0
+# if self.estimated_size.isdigit():
+# return int(self.estimated_size) / GUESTS_PER_STAFF
+# else:
+# # invalid data; just return something reasonable
+# return 2
def is_approved(self):
"""Has the events team approved the event? Note: This does not
View
2 templates/approved.html
@@ -12,7 +12,7 @@
<h4>{% ifequal events.grouper today.date %}<span style="text-decoration:underline;">Today</span> - {% endifequal %}{% ifequal events.grouper tomorrow.date %}<span style="text-decoration:underline;">Tomorrow</span> - {% endifequal %}{{events.grouper|date:"l, F j"}}</h4>
<table>
{% for event in events.list %}
- <tr><td width="75">{{event.start_time|date:"g:iA"|lower}}</td><td><a {% if event.is_canceled %}style="text-decoration: line-through;"{% endif %} href="/event/{{event.key.id}}-{{event.name|slugify}}">{{event.name}}</a> {% if event.is_canceled %}<span style="color: white; font-size: x-small; padding: 2px; background: gray">canceled</span>{% endif %} in {{event.roomlist}}</td></tr>
+ <tr><td width="75">{{event.start_time|date:"g:iA"|lower}}</td><td><a {% if event.is_canceled %}style="text-decoration: line-through;"{% endif %} href="/event/{{event.key.id}}-{{event.name|slugify}}">{{event.name}}</a> {% if event.is_canceled %}<span style="color: white; font-size: x-small; padding: 2px; background: gray">canceled</span>{% endif %}<div style="font-size:80%">Hosted by <a href="mailto:{{event.member.email}}">{{event.owner}}</a> {% if event.roomlist %}in {{event.roomlist}}{% endif %}</div></td></tr>
{% endfor %}
</table>
{% endfor %}
View
6 templates/base.html
@@ -1,6 +1,6 @@
<html>
<head>
- <title>Hacker Dojo Events</title>
+ <title>Events at Hacker Dojo</title>
<link href="/static/style.css" type="text/css" rel="stylesheet" />
<link type="text/css" href="/static/css/blitzer/jquery-ui-1.8.1.custom.css" rel="stylesheet" />
<script type="text/javascript" src="/static/js/jquery-1.4.2.min.js"></script>
@@ -20,8 +20,8 @@
<div id="wrapper">
<div id="header">
<img src="/static/dojo_icon.png" style="float: left;" />
- <h1>Hacker Dojo</h1>
- <h2 style="font-size: x-large;">Events</h2>
+ <h1>Events</h1>
+ <h2 style="font-size: x-large;">at Hacker Dojo</h2>
</div>
<div id="content">
{% block content %}{% endblock %}
View
14 templates/new.html
@@ -36,24 +36,26 @@
<div id="primary">
<h3>New Event</h3>
+
+ <div style="margin:4px; margin-bottom:1.5em; padding:8px; border:1px solid #ffe7af; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; background:#fffaed"><b>{{human}}</b> will be held personally responsible for this event. You must show up and ensure the rules below are followed.</div>
<div style="width: 46%; float: right; font-size: smaller; padding: 8px; -moz-border-radius: 8px; -webkit-border-radius: 8px; background: #eee; line-height: normal;" id="terms">
<h3 style="margin-top: 0px;">Member Terms as Event Host:</h3>
<ol>
<li><strong>Schedule</strong>
<div>Dojo resources are allocated on a first come, first serve basis. Avoid scheduling major events on the same day. Otherwise, expect an Events Coordinator to suggest an alternate time or room.</div></li>
- <li><strong>Staff</strong>
- <div>Approval requires volunteer staff to opt in to support your event. The larger the event, the more staff needed. Staff are there to ensure guests play nice at the Dojo, and may even help out, but are not paid help.</div></li>
+ <li><strong>Presence</strong>
+ <div>{{human}} must be phsyically physically for the event. You need to be there to ensure the event runs smoothly and the rules are enforced. If the event is cancelled, you are responsible for cancelling the event on this system.<p>If you are submitting this application on behalf of someone else, you will still be held responsible.</div></li>
<li><strong>Approval</strong>
- <div>The event must have enough staff and be approved by Event Coordinators. We reserve the right to refuse approval of events that are not considered in the spirit of Hacker Dojo.</div></li>
+ <div>The event must be approved by Event Coordinators. We reserve the right to refuse approval of events that are not considered in the spirit of Hacker Dojo.</div></li>
<li><strong>Setup</strong>
- <div>You are responsible for your event setup. This may require setting up a day early depending on the size of the event.</div></li>
+ <div>You are responsible for your event setup. This may require setting up a day early (or at least an hour or two early!), finding projectors, moving furniture, etc.</div></li>
<li><strong>Parking</strong>
<div>We have <a href="http://wiki.hackerdojo.com/Directions#Parking" target="_blank">strict parking rules</a> that you need to convey to guests. If large enough, you may need a staff member to direct parking.</div></li>
<li><strong>Sign-in</strong>
<div>We require your guests to sign in with our sign-in kiosks for liability reasons. This information also helps support the Dojo by giving insight into member conversions from your event.</div></li>
<li><strong>Blurb</strong>
- <div>You or a staff member need to give an introduction to Hacker Dojo before the event starts. This may include mentioning Hacker Dojo sponsors but shouldn't be longer than five minutes.</div></li>
+ <div>You or another member should give an introduction to Hacker Dojo before the event starts. This may include mentioning Hacker Dojo sponsors but shouldn't be longer than 1 couple minutes.</div></li>
<li><strong>Cleanup</strong>
<div>Please clean up after your event! Return it to the way you found it at the very least. Consider getting guests to pitch in.</div></li>
<li><strong>Supplies</strong>
@@ -133,7 +135,7 @@ <h3 style="margin-top: 0px;">Member Terms as Event Host:</h3>
<td><label for="estimated_size">Expected Size:</label>
<input type="text" name="estimated_size" size="4" style="text-align: right;" /> <span>people</span></td>
</tr></table>
- <h4>Primary Contact</h4>
+ <h4>External Contact (if applicable)</h4>
<table style="margin: 0px;"><tr>
<td class="first"><label for="contact_name">Name:</label>
<input type="text" name="contact_name" size="16" /></td>
View
2 templates/pending.html
@@ -11,7 +11,7 @@
<h4>{% ifequal events.grouper today.date %}<span style="text-decoration:underline;">Today</span> - {% endifequal %}{% ifequal events.grouper tomorrow.date %}<span style="text-decoration:underline;">Tomorrow</span> - {% endifequal %}{{events.grouper|date:"l, F j"}}</h4>
<table>
{% for event in events.list %}
- <tr><td width="75">{{event.start_time|date:"g:iA"|lower}}</td><td><a href="/event/{{event.key.id}}-{{event.name|slugify}}">{{event.name}}</a> <span style="color: white; font-size: x-small; padding: 2px; background: gray">{{event.status}}</span> in {{event.roomlist}}</td></tr>
+ <tr><td width="75">{{event.start_time|date:"g:iA"|lower}}</td><td><a href="/event/{{event.key.id}}-{{event.name|slugify}}">{{event.name}}</a> <span style="color: white; font-size: x-small; padding: 2px; background: gray">{{event.status}}</span><div style="font-size:80%">Hosted by <a href="mailto:{{event.member.email}}">{{event.owner}}</a> {% if event.roomlist %}in {{event.roomlist}}{% endif %}</div></td></tr>
{% endfor %}
</table>
{% endfor %}

0 comments on commit 4d85afa

Please sign in to comment.
Something went wrong with that request. Please try again.