From 806215f35edf647b3cc02b24a37659884920b824 Mon Sep 17 00:00:00 2001 From: tec Date: Tue, 11 Nov 2014 20:08:36 +0000 Subject: [PATCH] Added all event views and urls. Added event detail template. Added itemisation templates. --- RIGS/rigboard.py | 28 +++++- RIGS/templates/RIGS/event_detail.html | 117 ++++++++++++++++++++++++++ RIGS/templates/RIGS/item_row.html | 25 ++++++ RIGS/templates/RIGS/item_table.html | 42 +++++++++ RIGS/urls.py | 9 ++ db.sqlite3 | Bin 25079808 -> 25083904 bytes 6 files changed, 220 insertions(+), 1 deletion(-) create mode 100644 RIGS/templates/RIGS/event_detail.html create mode 100644 RIGS/templates/RIGS/item_row.html create mode 100644 RIGS/templates/RIGS/item_table.html 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 70e0e7856b7bec1606031bf37a0af8d831df2e8e..1247059073e0b94ba6f3fcaf4d7a7c9cf1e4ff5a 100644 GIT binary patch delta 5579 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 X_@Vol|I)5->j5HsYe)FboyY$J{)>os delta 3917 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