From ad99d0c11e402648a1abc902c10574c0f3330288 Mon Sep 17 00:00:00 2001 From: Robert Kolner Date: Wed, 1 May 2013 21:49:29 +0200 Subject: [PATCH] Added prm. --- bestilling/bestilling/urls.py | 1 + bestilling/prm/__init__.py | 0 bestilling/prm/models.py | 7 + bestilling/prm/tests.py | 16 ++ bestilling/prm/urls.py | 7 + bestilling/prm/views.py | 78 +++++++ bestilling/templates/design/form.html | 302 ++++++++++---------------- bestilling/templates/form_base.html | 88 ++++++++ bestilling/templates/prm/form.html | 46 ++++ bestilling/templates/prm/order.html | 8 + bestilling/templates/tekst/form.html | 282 +++++++++--------------- bestilling/templates/trello_card.txt | 1 + 12 files changed, 464 insertions(+), 372 deletions(-) create mode 100644 bestilling/prm/__init__.py create mode 100644 bestilling/prm/models.py create mode 100644 bestilling/prm/tests.py create mode 100644 bestilling/prm/urls.py create mode 100644 bestilling/prm/views.py create mode 100644 bestilling/templates/form_base.html create mode 100644 bestilling/templates/prm/form.html create mode 100644 bestilling/templates/prm/order.html diff --git a/bestilling/bestilling/urls.py b/bestilling/bestilling/urls.py index 54e6161..85bce9b 100644 --- a/bestilling/bestilling/urls.py +++ b/bestilling/bestilling/urls.py @@ -6,6 +6,7 @@ admin.autodiscover() urlpatterns = patterns('', (r'^design/', include('design.urls')), (r'^tekst/', include('tekst.urls')), + (r'^prm/', include('prm.urls')), (r'^admin/doc/', include('django.contrib.admindocs.urls')), (r'^admin/', include(admin.site.urls)), ) diff --git a/bestilling/prm/__init__.py b/bestilling/prm/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/bestilling/prm/models.py b/bestilling/prm/models.py new file mode 100644 index 0000000..87cb7f4 --- /dev/null +++ b/bestilling/prm/models.py @@ -0,0 +1,7 @@ +from bestilling.models import Order +from django.db import models + +class PrmOrder(Order): + assignment_type = models.CharField(max_length=50) + content = models.TextField(blank=True, null=True) + diff --git a/bestilling/prm/tests.py b/bestilling/prm/tests.py new file mode 100644 index 0000000..501deb7 --- /dev/null +++ b/bestilling/prm/tests.py @@ -0,0 +1,16 @@ +""" +This file demonstrates writing tests using the unittest module. These will pass +when you run "manage.py test". + +Replace this with more appropriate tests for your application. +""" + +from django.test import TestCase + + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.assertEqual(1 + 1, 2) diff --git a/bestilling/prm/urls.py b/bestilling/prm/urls.py new file mode 100644 index 0000000..0ac0184 --- /dev/null +++ b/bestilling/prm/urls.py @@ -0,0 +1,7 @@ +from django.conf.urls import patterns, include, url +from prm.views import PrmFormView, PrmOrderView + +urlpatterns = patterns('tekst.views', + (r'^$', PrmFormView.as_view()), + (r'^order/(?P[a-zA-Z0-9-]+)/', PrmOrderView.as_view()), +) diff --git a/bestilling/prm/views.py b/bestilling/prm/views.py new file mode 100644 index 0000000..bf26fe1 --- /dev/null +++ b/bestilling/prm/views.py @@ -0,0 +1,78 @@ +#-*- encoding: utf-8 -*- + +from datetime import datetime + +from bestilling.baseviews import BaseFormView, BaseOrderView +from prm.models import PrmOrder +from django.core.context_processors import csrf +from django.http import HttpResponse, Http404 +from django.template import Context +from django.template.loader import get_template + +class PrmFormView(BaseFormView): + template_name = 'prm/form.html' + trello_board_id = '517870177cd0f3fa3e0036c7' + params_list = [ + 'client', + 'deadline', + 'contact_name', + 'contact_email', + 'contact_number', + 'assignment_type', + 'assignment_type_other', + 'content', + ] + + def _get_errors(self, params): + errors = super(PrmFormView, self)._get_errors(params) + errors.update({ + 'assignment_type_error' : params['assignment_type'] == '', + 'assignment_type_other_error' : params['assignment_type'] == 'other' and params['assignment_type_other'] == '', + 'content_error' : params['content'] == '', + }) + + # Filter out all errors that are False: + return dict((error, True) for error, has_happened in errors.iteritems() if has_happened is True) + + def _get_order_url(self, request, order): + return request.build_absolute_uri('/prm/order/{uuid}/'.format(uuid=order.uuid)) + + def _save_data(self, request, params): + params.update({ + 'assignment_type' : params['assignment_type'] if params['assignment_type'] != 'other' else params['assignment_type_other'], + }) + + deadline = datetime.strptime(params['deadline'], '%Y-%m-%d') + + card = self._save_to_trello( + card_name = params['client'], + card_description = "", + card_due=datetime.strftime(deadline, '%m/%d/%y'), + ) + + card_id = card.id + + order = PrmOrder( + client = params['client'], + deadline = deadline.date(), + contact_name = params['contact_name'], + contact_email = params['contact_email'], + contact_number = params['contact_number'], + assignment_type = params['assignment_type'], + content = params['content'], + trello_card_id = str(card_id) + ) + order.save() + + params['url'] = request.build_absolute_uri('/prm/order/{uuid}/'.format(uuid=order.uuid)) + card_template = get_template('trello_card.txt') + description = card_template.render(Context(params)) + card.set_description(description) + + return order + +class PrmOrderView(BaseOrderView): + template_name = "prm/order.html" + + def _get_order(self, order_id): + return PrmOrder.objects.get(uuid=order_id) diff --git a/bestilling/templates/design/form.html b/bestilling/templates/design/form.html index a0a2cef..bfbddb2 100644 --- a/bestilling/templates/design/form.html +++ b/bestilling/templates/design/form.html @@ -1,191 +1,111 @@ - - - - Kommunikasjonsavdelingen - Bestilling designoppdrag - {% load staticfiles %} - - - - - - - - - - - - -

Kommunikasjonsavdelingen - Bestilling designoppdrag

- -
{% csrf_token %} - -
- Forening - - - {% if errors.client_error %} - - {% endif %} -
- -
- Frist -
-

Fristen må være tidligst to uker etter bestilling.

-

Tidsfristen for oppdraget skal være forsvarlig i henhold til estimert arbeidsmengde. Dersom bestillingen er et hastoppdrag, må det gjerne presiseres, men Kommunikasjonsavdelingen kan ikke garantere at bestillingen prioriteres fremfor øvrige oppdrag.

-
- -
-
-
- Kontaktperson - -
-
- -
- - {% if errors.contact_name_error %} - - {% endif %} -
-
-
- -
- - {% if errors.contact_email_error %} - - {% endif %} -
-
-
- -
- - {% if errors.contact_number_error %} - - {% endif %} -
-
-
-
- -
- Format - {% if errors.format_error %} - - {% endif %} - - - - - - - - - - {% if errors.format_other_error %} - - {% endif %} -
- -
- Størrelse - {% if errors.paper_size_error %} - - {% endif %} - - - - - - - - {% if errors.paper_size_other_error %} - - {% endif %} - -
- -
- Farger eller svart/hvitt - {% if errors.colour_error %} - - {% endif %} - - - -
- -
- Profesjonell print eller skrive ut selv - {% if errors.marger_error %} - - {% endif %} - - - -
- -
- Innhold -
-

Hvem, hva, hvor og når

-

Oppdragsgiver er pliktet til å forsyne oppdragstaker med tilstrekkelig og korrekt informasjon. Det er heller ikke oppdragstakers oppgave å sørge for at oppgitt informasjon/data er korrekt, og er følgelig fraskrevet alt ansvar dersom informasjonen er ukorrekt.

-

Bestillingen skal inneha en klar og tydelig formulering.

-

Oppdragstaker er pliktet til å ta kontakt med oppdragsgiver så fort bestillingen er tildelt den.

-
- {% if errors.content_error %} - - {% endif %} - -
-
- -
-
- - +{% extends "form_base.html" %} + +{% block title %}Kommunikasjonsavdelingen - Bestilling designoppdrag{% endblock %} +{% block header %}Kommunikasjonsavdelingen - Bestilling designoppdrag{% endblock %} +{% block order_details %} +
+ Format + {% if errors.format_error %} + + {% endif %} + + + + + + + + + + {% if errors.format_other_error %} + + {% endif %} +
+ +
+ Størrelse + {% if errors.paper_size_error %} + + {% endif %} + + + + + + + + {% if errors.paper_size_other_error %} + + {% endif %} + +
+ +
+ Farger eller svart/hvitt + {% if errors.colour_error %} + + {% endif %} + + + +
+ +
+ Profesjonell print eller skrive ut selv + {% if errors.marger_error %} + + {% endif %} + + + +
+ +
+ Innhold +
+

Hvem, hva, hvor og når

+

Oppdragsgiver er pliktet til å forsyne oppdragstaker med tilstrekkelig og korrekt informasjon. Det er heller ikke oppdragstakers oppgave å sørge for at oppgitt informasjon/data er korrekt, og er følgelig fraskrevet alt ansvar dersom informasjonen er ukorrekt.

+

Bestillingen skal inneha en klar og tydelig formulering.

+

Oppdragstaker er pliktet til å ta kontakt med oppdragsgiver så fort bestillingen er tildelt den.

+
+ {% if errors.content_error %} + + {% endif %} + +
+{% endblock %} diff --git a/bestilling/templates/form_base.html b/bestilling/templates/form_base.html new file mode 100644 index 0000000..41603be --- /dev/null +++ b/bestilling/templates/form_base.html @@ -0,0 +1,88 @@ + + + + {% block title %}{% endblock %} + {% load staticfiles %} + + + + + + + + + + + + +

{% block header %}{% endblock %}

+ +
{% csrf_token %} + +
+ Forening + + + {% if errors.client_error %} + + {% endif %} +
+ +
+ Frist +
+

Fristen må være tidligst to uker etter bestilling.

+

Tidsfristen for oppdraget skal være forsvarlig i henhold til estimert arbeidsmengde. Dersom bestillingen er et hastoppdrag, må det gjerne presiseres, men Kommunikasjonsavdelingen kan ikke garantere at bestillingen prioriteres fremfor øvrige oppdrag.

+
+ +
+
+
+ Kontaktperson + +
+
+ +
+ + {% if errors.contact_name_error %} + + {% endif %} +
+
+
+ +
+ + {% if errors.contact_email_error %} + + {% endif %} +
+
+
+ +
+ + {% if errors.contact_number_error %} + + {% endif %} +
+
+
+
+ + {% block order_details %}{% endblock %} + +
+ +
+
+ + diff --git a/bestilling/templates/prm/form.html b/bestilling/templates/prm/form.html new file mode 100644 index 0000000..59cbd05 --- /dev/null +++ b/bestilling/templates/prm/form.html @@ -0,0 +1,46 @@ +{% extends "form_base.html" %} + +{% block title %}Kommunikasjonsavdelingen - Bestilling PRM-oppdrag{% endblock %} +{% block header %}Kommunikasjonsavdelingen - Bestilling PRM-oppdrag{% endblock %} +{% block order_details %} +
+ Hva trenger du? + {% if errors.assignment_type_error %} + + {% endif %} + + + + + + + + {% if errors.assignment_type_other_error %} + + {% endif %} +
+
+ Innhold +
+

Hvem, hva, hvor og når

+

Oppdragsgiver er pliktet til å forsyne oppdragstaker med tilstrekkelig og korrekt informasjon. Det er heller ikke oppdragstakers oppgave å sørge for at oppgitt informasjon/data er korrekt, og er følgelig fraskrevet alt ansvar dersom informasjonen er ukorrekt.

+

Bestillingen skal inneha en klar og tydelig formulering.

+

Oppdragstaker er pliktet til å ta kontakt med oppdragsgiver så fort bestillingen er tildelt den.

+
+ {% if errors.content_error %} + + {% endif %} + +
+{% endblock %} diff --git a/bestilling/templates/prm/order.html b/bestilling/templates/prm/order.html new file mode 100644 index 0000000..5f3256f --- /dev/null +++ b/bestilling/templates/prm/order.html @@ -0,0 +1,8 @@ +{% extends "order_base.html" %} + +{% block title %}Kommunikasjonsavdelingen - PRM-oppdrag nr {{ order.id }}{% endblock %} + +{% block order_details %} +

Oppdrag: {{ order.assignment_type }}

+
{{ order.content }}
+{% endblock %} diff --git a/bestilling/templates/tekst/form.html b/bestilling/templates/tekst/form.html index 46ed4f8..c7ac0a3 100644 --- a/bestilling/templates/tekst/form.html +++ b/bestilling/templates/tekst/form.html @@ -1,183 +1,103 @@ - - - - Kommunikasjonsavdelingen - Bestilling tekstoppdrag - {% load staticfiles %} - - - - - - - - - - - - -

Kommunikasjonsavdelingen - Bestilling tekstoppdrag

- -
{% csrf_token %} - -
- Forening - - - {% if errors.client_error %} - - {% endif %} -
- -
- Frist -
-

Fristen må være tidligst to uker etter bestilling.

-

Tidsfristen for oppdraget skal være forsvarlig i henhold til estimert arbeidsmengde. Dersom bestillingen er et hastoppdrag, må det gjerne presiseres, men Kommunikasjonsavdelingen kan ikke garantere at bestillingen prioriteres fremfor øvrige oppdrag.

-
- -
-
-
- Kontaktperson - -
-
- -
- - {% if errors.contact_name_error %} - - {% endif %} -
-
-
- -
- - {% if errors.contact_email_error %} - - {% endif %} -
-
-
- -
- - {% if errors.contact_number_error %} - - {% endif %} -
-
-
-
- -
- Type tekst - {% if errors.text_type_error %} - - {% endif %} - - - - - - - - - {% if errors.text_type_other_error %} - - {% endif %} -
- -
- Lengde - {% if errors.length_error %} - - {% endif %} - - - - - -
- -
- Bilde - {% if errors.image_error %} - - {% endif %} - - - - -
- -
- Intervju - {% if errors.interview_error %} - - {% endif %} -
- - -
+{% extends "form_base.html" %} -
- - -
-
+{% block title %}Kommunikasjonsavdelingen - Bestilling tekstoppdrag{% endblock %} +{% block header %}Kommunikasjonsavdelingen - Bestilling tekstoppdrag{% endblock %} +{% block order_details %} +
+ Type tekst + {% if errors.text_type_error %} + + {% endif %} -
- Innhold -
-

Hvem, hva, hvor og når

-

Oppdragsgiver er pliktet til å forsyne oppdragstaker med tilstrekkelig og korrekt informasjon. Det er heller ikke oppdragstakers oppgave å sørge for at oppgitt informasjon/data er korrekt, og er følgelig fraskrevet alt ansvar dersom informasjonen er ukorrekt.

-

Bestillingen skal inneha en klar og tydelig formulering.

-

Oppdragstaker er pliktet til å ta kontakt med oppdragsgiver så fort bestillingen er tildelt den.

-
- {% if errors.content_error %} - - {% endif %} - -
-
- -
- - - + + + + + + + + {% if errors.text_type_other_error %} + + {% endif %} +
+ +
+ Lengde + {% if errors.length_error %} + + {% endif %} + + + + + +
+ +
+ Bilde + {% if errors.image_error %} + + {% endif %} + + + + +
+ +
+ Intervju + {% if errors.interview_error %} + + {% endif %} +
+ + +
+ +
+ + +
+
+ +
+ Innhold +
+

Hvem, hva, hvor og når

+

Oppdragsgiver er pliktet til å forsyne oppdragstaker med tilstrekkelig og korrekt informasjon. Det er heller ikke oppdragstakers oppgave å sørge for at oppgitt informasjon/data er korrekt, og er følgelig fraskrevet alt ansvar dersom informasjonen er ukorrekt.

+

Bestillingen skal inneha en klar og tydelig formulering.

+

Oppdragstaker er pliktet til å ta kontakt med oppdragsgiver så fort bestillingen er tildelt den.

+
+ {% if errors.content_error %} + + {% endif %} + +
+{% endblock %} diff --git a/bestilling/templates/trello_card.txt b/bestilling/templates/trello_card.txt index 29796f7..48de190 100644 --- a/bestilling/templates/trello_card.txt +++ b/bestilling/templates/trello_card.txt @@ -10,6 +10,7 @@ {% if text_type %}**Type tekst:** {{ text_type }}{% endif %} {% if length %}**Lengde:** {{ length }}{% endif %} {% if image %}**Bilde:** {{ image }}{% endif %} +{% if assignment_type %}** Type oppdrag: ** {{ assignment_type }}{% endif %} {% if interview_name or interview_contact %}--- **Intervju:** {% if interview_name %}**Navn:** {{ interview_name }}{% endif %}