From 0cea4a3c6b265b8d68aa5104583e80b76cc9d5ec Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 19 Nov 2010 00:22:59 +0100 Subject: Update forms to make dated fields available to users (refs #270) --- chimere/main/forms.py | 7 +++++++ chimere/main/models.py | 12 ++++++++---- chimere/main/views.py | 2 ++ chimere/main/widgets.py | 1 + chimere/templates/edit.html | 21 +++++++++++++++++++++ chimere/templates/edit_route.html | 21 +++++++++++++++++++++ 6 files changed, 60 insertions(+), 4 deletions(-) diff --git a/chimere/main/forms.py b/chimere/main/forms.py index ef13dc8..c3cd810 100644 --- a/chimere/main/forms.py +++ b/chimere/main/forms.py @@ -24,6 +24,7 @@ from django import forms from django.contrib.gis.db import models from django.utils.translation import ugettext as _ from django.contrib.auth.models import User, Permission, ContentType +from django.contrib.admin.widgets import AdminDateWidget from django.core.mail import EmailMessage, BadHeaderError from chimere import settings @@ -111,6 +112,9 @@ required=False)' % (property.order, property.id, property.name, else: keys['initial'] = property_dct super(MarkerAdminForm, self).__init__(*args, **keys) + if settings.DAYS_BEFORE_EVENT: + self.fields['start_date'].widget = AdminDateWidget() + self.fields['end_date'].widget = AdminDateWidget() def save(self, *args, **keys): """ @@ -180,6 +184,9 @@ required=False)' % (property.order, property.id, property.name, else: keys['initial'] = property_dct super(RouteAdminForm, self).__init__(*args, **keys) + if settings.DAYS_BEFORE_EVENT: + self.fields['start_date'].widget = AdminDateWidget() + self.fields['end_date'].widget = AdminDateWidget() def save(self, *args, **keys): """ diff --git a/chimere/main/models.py b/chimere/main/models.py index 28f1446..0528357 100644 --- a/chimere/main/models.py +++ b/chimere/main/models.py @@ -199,9 +199,11 @@ class Marker(models.Model): status = models.CharField(_("Status"), max_length=1, choices=STATUS) if settings.DAYS_BEFORE_EVENT: start_date = models.DateField(_("Start date"), blank=True, null=True, -help_text=_("Not mandatory. Set it for dated item such as event.")) +help_text=_("Not mandatory. Set it for dated item such as event. \ +Format YYYY-MM-DD")) end_date = models.DateField(_("End date"), blank=True, null=True, -help_text=_("Not mandatory. Set it only if you have set a start date.")) +help_text=_("Not mandatory. Set it only if you have set a start date. \ +Format YYYY-MM-DD")) objects = models.GeoManager() def __unicode__(self): @@ -275,9 +277,11 @@ class Route(models.Model): STATUS_DCT[key] = label if settings.DAYS_BEFORE_EVENT: start_date = models.DateField(_("Start date"), blank=True, null=True, -help_text=_("Not mandatory. Set it for dated item such as event.")) +help_text=_("Not mandatory. Set it for dated item such as event. \ +Format YYYY-MM-DD")) end_date = models.DateField(_("End date"), blank=True, null=True, -help_text=_("Not mandatory. Set it only if you have set a start date.")) +help_text=_("Not mandatory. Set it only if you have set a start date. \ +Format YYYY-MM-DD")) status = models.CharField(_("Status"), max_length=1, choices=STATUS) objects = models.GeoManager() diff --git a/chimere/main/views.py b/chimere/main/views.py index 3ac3db1..fce17d7 100644 --- a/chimere/main/views.py +++ b/chimere/main/views.py @@ -136,6 +136,7 @@ def edit(request, area_name=""): 'error_message':'', 'map_layer':settings.MAP_LAYER, 'form':form, + 'dated':settings.DAYS_BEFORE_EVENT, 'extra_head':form.media, 'sub_categories':SubCategory.getAvailable(['M', 'B'], area_name), @@ -176,6 +177,7 @@ def editRoute(request, area_name=""): 'error_message':'', 'map_layer':settings.MAP_LAYER, 'form':form, + 'dated':settings.DAYS_BEFORE_EVENT, 'extra_head':form.media, 'sub_categories':SubCategory.getAvailable(['R', 'B'], area_name), diff --git a/chimere/main/widgets.py b/chimere/main/widgets.py index 64893ab..9c53a6d 100644 --- a/chimere/main/widgets.py +++ b/chimere/main/widgets.py @@ -331,3 +331,4 @@ class SelectMultipleField(models.ManyToManyField): defaults = {'widget': MultiSelectWidget} keys.update(defaults) return super(SelectMultipleField, self).formfield(**keys) + diff --git a/chimere/templates/edit.html b/chimere/templates/edit.html index 130ead6..4a02fe4 100644 --- a/chimere/templates/edit.html +++ b/chimere/templates/edit.html @@ -1,5 +1,12 @@ {% extends "base_user.html" %} {% load i18n %} +{% block extra_head %} +{% if dated %} + + + +{% endif %}{{ block.super }} +{% endblock %} {% block message_map %}{% endblock %} {% block message_edit%}
{{block.super}}{% endblock %} @@ -29,6 +36,20 @@ {{ form.picture.errors }} {{ form.picture }}
+{% if dated %} +
+ + {{ form.start_date.errors }} + {{ form.start_date }} +

{{ form.start_date.help_text }}

+
+
+ + {{ form.end_date.errors }} + {{ form.end_date }} +

{{ form.end_date.help_text }}

+
+{% endif %} {%for field in form%}{%for property in properties%}{%ifequal field.name property%}
diff --git a/chimere/templates/edit_route.html b/chimere/templates/edit_route.html index 76524ac..5152ba5 100644 --- a/chimere/templates/edit_route.html +++ b/chimere/templates/edit_route.html @@ -1,5 +1,12 @@ {% extends "base_user.html" %} {% load i18n %} +{% block extra_head %} +{% if dated %} + + + +{% endif %}{{ block.super }} +{% endblock %} {% block message_map %}{% endblock %} {% block message_edit%}
{{block.super}}{% endblock %} {% block content %}{{ block.super }} @@ -29,6 +36,20 @@ {{ form.picture.errors }} {{ form.picture }}
--> +{% if dated %} +
+ + {{ form.start_date.errors }} + {{ form.start_date }} +

{{ form.start_date.help_text }}

+
+
+ + {{ form.end_date.errors }} + {{ form.end_date }} +

{{ form.end_date.help_text }}

+
+{% endif %} {%for field in form%}{%for property in properties%}{%ifequal field.name property%}
-- cgit v1.2.3