diff --git a/RIGS/rigboard.py b/RIGS/rigboard.py index 42170dbf..448b0020 100644 --- a/RIGS/rigboard.py +++ b/RIGS/rigboard.py @@ -1,4 +1,5 @@ from django.views import generic +from django.core.urlresolvers import reverse_lazy from RIGS import models __author__ = 'ghost' @@ -13,4 +14,29 @@ class RigboardIndex(generic.TemplateView): # call out method to get current events context['events'] = models.Event.objects.current_events() - return context \ No newline at end of file + return context + +class EventDetail(generic.DetailView): + model = models.Event + +class EventCreate(generic.CreateView): + model = models.Event + + def get_context_data(self, **kwargs): + context = super(EventCreate, self).get_context_data(**kwargs) + context['edit'] = True + return context + + def get_success_url(self): + return reverse_laze('event_detail', kwargs={'pk': self.object.pk}) + +class EventUpdate(generic.UpdateView): + model = models.Event + + def get_context_data(self, **kwargs): + context = super(EventUpdate, self).get_context_data(**kwargs) + context['edit'] = True + return context + + def get_success_url(self): + return reverse_laze('event_detail', kwargs={'pk': self.object.pk}) diff --git a/RIGS/templates/RIGS/event_detail.html b/RIGS/templates/RIGS/event_detail.html new file mode 100644 index 00000000..96b13d81 --- /dev/null +++ b/RIGS/templates/RIGS/event_detail.html @@ -0,0 +1,117 @@ +{% extends 'base.html' %} +{% block title %}Event {% if object.is_rig %}N{{object.pk|stringformat:"05d"}}{% else %}{{object.pk}}{% endif %}{% endblock %} + +{% block content %} +
+
+

N{{object.pk|stringformat:"05d"}}

+
+
+
+ + +
+
+
+ +{% if object.is_rig %} +{# only need contact details for a rig #} +
+
+
Contact Details
+
+
+
Person
+
{{object.person.name}}
+ +
Email
+
{{object.person.email}}
+ +
Phone Number
+
{{object.person.phone}}
+
+
+
+ {% if event.organisation %} +
+
Organisation
+
+
+
Organisation
+
{{object.organisation.name}}
+ +
Phone Number
+
{{object.organisation.phone}}
+ +
Has SU Account
+
{{event.organisation.union_account|yesno|capfirst}}
+
+
+
+ {% endif %} +
+{% endif %} +
+
+
{{object.name}}
+
+
+
Event Venue
+
{{object.venue}}
+ +
Event MIC
+
{{event.mic.get_full_name}}
+ +
 
+ + {% if event.is_rig %} +
Crew Meet
+
{{event.meet_at|date:"d M Y H:i"|default:""}}
+
{{event.meet_info|default:""}}
+ +
Access From
+
{{event.access_at|date:"d M Y H:i"|default:""}}
+ {% endif %} + +
Event Starts
+
{{event.start_date|date:"d M Y"}} {{event.start_time|date:"H:i"}}
+ +
Event Ends
+
{{event.end_date|date:"d M Y"}} {{event.end_time|date:"H:i"}}
+ +
 
+ +
Event Description
+
{{event.description|linebreaksbr}}
+
+
+
+
+
+
+ + +
+
+
+
+
Event Details
+
+
+

Notes

+ {{event.notes|linebreaksbr}} +
+ {% if event.is_rig %} + {% include 'RIGS/item_table.html' %} + {% endif %} +
+
+
+
+
+ + +
+
Last edited at {{object.last_edited_at|date:"SHORT_DATETIME_FORMAT"}} by {{object.last_edited_by}}.
+
+{% endblock %} diff --git a/RIGS/templates/RIGS/item_row.html b/RIGS/templates/RIGS/item_row.html new file mode 100644 index 00000000..203fa12c --- /dev/null +++ b/RIGS/templates/RIGS/item_row.html @@ -0,0 +1,25 @@ + + + {{ item.name }} + {% if item.description %} +
+ {{item.description|linebreaksbr}} + {% endif %} + + £ {{item.cost}} + {{item.quantity}} + £ {{item.total_cost}} + {% if response.edit %} + + + + + {% endif %} + diff --git a/RIGS/templates/RIGS/item_table.html b/RIGS/templates/RIGS/item_table.html new file mode 100644 index 00000000..e423f88c --- /dev/null +++ b/RIGS/templates/RIGS/item_table.html @@ -0,0 +1,42 @@ +
+ + + + + + + + {% if response.edit %} + + {% endif %} + + + + {% for item in object.items.all %} + {% include 'RIGS/item_row.html' %} + {% endfor %} + + + + + + + + + + + + + + + + +
ItemPriceQuantitySub-total + +
Sum Total£ {{object.sum_total}}
VAT @ + {{object.vat_rate.as_percent|floatformat}}%£ {{object.vat|floatformat:2}}
Total£ {{object.total|floatformat:2}}
+
diff --git a/RIGS/urls.py b/RIGS/urls.py index 52df34a8..e5a5f12c 100644 --- a/RIGS/urls.py +++ b/RIGS/urls.py @@ -55,5 +55,14 @@ urlpatterns = patterns('', # Rigboard url(r'^rigboard/$', rigboard.RigboardIndex.as_view(), name='rigboard'), + url(r'^event/(?P\d+)/$', + permission_required_with_403('RIGS.view_event')(rigboard.EventDetail.as_view()), + name='event_detail'), + url(r'^event/create/$', + permission_required_with_403('RIGS.add_event')(rigboard.EventCreate.as_view()), + name='event_create'), + url(r'^event/(?P\d+)/edit/$', + permission_required_with_403('RIGS.change_event')(rigboard.EventUpdate.as_view()), + name='event_update'), ) diff --git a/db.sqlite3 b/db.sqlite3 index 70e0e785..12470590 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ