From d6f0c2ea2461a827644677d6cd0d857b1ea8c044 Mon Sep 17 00:00:00 2001 From: s1rai Date: Wed, 12 Aug 2015 10:23:15 +1000 Subject: [PATCH 1/4] Completion of project and client form --- formexample/formexample/urls.py | 1 - slides/CLASS.md | 2 +- timetracker/entries/forms.py | 25 ++++++++++-- timetracker/entries/models.py | 3 +- timetracker/entries/templates/clients.html | 8 +++- timetracker/entries/templates/entries.html | 2 +- timetracker/entries/templates/projects.html | 11 +++++- timetracker/entries/views.py | 43 +++++++++++++++++---- 8 files changed, 76 insertions(+), 19 deletions(-) diff --git a/formexample/formexample/urls.py b/formexample/formexample/urls.py index 1ac88b3..380c474 100644 --- a/formexample/formexample/urls.py +++ b/formexample/formexample/urls.py @@ -18,7 +18,6 @@ import formapp.views - urlpatterns = [ url(r'^$', formapp.views.example, name='html_form'), url(r'^django-form/$', formapp.views.django_example, name='django_form'), diff --git a/slides/CLASS.md b/slides/CLASS.md index 1713724..d8a3881 100644 --- a/slides/CLASS.md +++ b/slides/CLASS.md @@ -176,7 +176,7 @@ class HelloWorldForm(forms.Form): - It takes two optional arguments for validation - `max_length` - `min_length` - + ``` class HelloWorldForm(forms.Form): name = forms.CharField(label="Say Hello", required=True) diff --git a/timetracker/entries/forms.py b/timetracker/entries/forms.py index 51e18f1..a3714af 100644 --- a/timetracker/entries/forms.py +++ b/timetracker/entries/forms.py @@ -1,10 +1,29 @@ from django import forms +from django.utils import timezone -from .models import Project - +from .models import Project, Client class EntryForm(forms.Form): start = forms.DateTimeField(label="Start Time", help_text="Format: 2006-10-25 14:30") - end = forms.DateTimeField(label="End Time", help_text="Format: 2006-10-25 14:30") + stop = forms.DateTimeField(label="End Time", help_text="Format: 2006-10-25 14:30") project = forms.ModelChoiceField(queryset=Project.objects.all()) description = forms.CharField() + + def ValidDate(self): + start = self.cleaned_data['start'] + stop = self.cleand_data['end'] + + if start > end: + raise forms.ValidationError("Start time is greater then stop time") + return start + +class ClientForm(forms.Form): + name = forms.CharField(required=False, label="name") + +class ProjectForm(forms.Form): + client= forms.ModelChoiceField(queryset=Client.objects.all()) + name = forms.CharField(required=False, label="name") + + + + diff --git a/timetracker/entries/models.py b/timetracker/entries/models.py index 824b284..5404bab 100644 --- a/timetracker/entries/models.py +++ b/timetracker/entries/models.py @@ -4,7 +4,7 @@ class Client(models.Model): name = models.CharField(max_length=200) - + def __str__(self): return self.name @@ -16,7 +16,6 @@ class Project(models.Model): def __str__(self): return '<{}> {}'.format(self.client, self.name) - # Create your models here. class Entry(models.Model): start = models.DateTimeField(default=timezone.now) diff --git a/timetracker/entries/templates/clients.html b/timetracker/entries/templates/clients.html index e8e4209..952a750 100644 --- a/timetracker/entries/templates/clients.html +++ b/timetracker/entries/templates/clients.html @@ -4,9 +4,15 @@ {% block content %}

Clients

+
+ {% csrf_token %} + {{ client_form.as_p }} + +
+ {% endblock %} diff --git a/timetracker/entries/templates/entries.html b/timetracker/entries/templates/entries.html index 335f5bb..ee4b763 100644 --- a/timetracker/entries/templates/entries.html +++ b/timetracker/entries/templates/entries.html @@ -7,7 +7,7 @@

Entries

{% csrf_token %} {{ entry_form.as_p }} - +