# HG changeset patch # User Branko Majic # Date 2013-07-24 21:22:05 # Node ID c5b0177debb4ac0cf5445bf4f0f1c99522d9362c # Parent 529cb3e7db9bd67adebf97dc05a7a5e62dc7ff3c CONNT-13: Implemented the ProjectForm model form. Updated tests. diff --git a/conntrackt/forms.py b/conntrackt/forms.py --- a/conntrackt/forms.py +++ b/conntrackt/forms.py @@ -2,7 +2,7 @@ from django.forms import ModelForm # Application imports. -from .models import Entity, Interface, Communication +from .models import Project, Entity, Interface, Communication class WidgetCSSClassFormMixin(object): @@ -107,3 +107,17 @@ class CommunicationForm(WidgetCSSClassFo "description": "Communication description"} widget_css_classes = {"ALL": "span6"} + + +class ProjectForm(WidgetCSSClassFormMixin, PlaceholderFormMixin, ModelForm): + """ + Implements a custom model form for projects with some styling changes. + """ + + class Meta: + model = Project + + widget_placeholders = {"name": "Project name", + "description": "Project description"} + + widget_css_classes = {"ALL": "span6"} diff --git a/conntrackt/tests/test_views.py b/conntrackt/tests/test_views.py --- a/conntrackt/tests/test_views.py +++ b/conntrackt/tests/test_views.py @@ -379,22 +379,6 @@ class ProjectCreateViewTest(PermissionTe view_class = ProjectCreateView sufficient_permissions = ("add_project",) - def test_form_styling(self): - """ - Tests if proper form styling is being applied. - """ - - # Get the view. - view = ProjectCreateView.as_view() - - # Get the response. - response = generate_get_response(view) - - self.assertContains(response, 'class="span6 textinput') - self.assertContains(response, 'class="span6 textarea') - self.assertContains(response, 'placeholder="New Project"') - self.assertContains(response, 'placeholder="Description for new project."') - class ProjectUpdateViewTest(PermissionTestMixin, TestCase): @@ -404,21 +388,6 @@ class ProjectUpdateViewTest(PermissionTe sufficient_permissions = ("change_project",) permission_test_view_kwargs = {"pk": 1} - def test_form_styling(self): - """ - Tests if proper form styling is being applied. - """ - - # Get the view. - view = ProjectUpdateView.as_view() - - # Get the response. - response = generate_get_response(view, None, pk=1) - - self.assertContains(response, 'class="span6 textinput') - self.assertContains(response, 'class="span6 textarea') - self.assertContains(response, 'placeholder="Project name"') - self.assertContains(response, 'placeholder="Description for project."') def test_context(self): """ diff --git a/conntrackt/views.py b/conntrackt/views.py --- a/conntrackt/views.py +++ b/conntrackt/views.py @@ -14,7 +14,7 @@ from django.views.generic import Templat from braces.views import MultiplePermissionsRequiredMixin # Application imports. -from .forms import EntityForm, InterfaceForm, CommunicationForm +from .forms import EntityForm, InterfaceForm, CommunicationForm, ProjectForm from .models import Project, Entity, Location, Interface, Communication from .utils import generate_entity_iptables @@ -253,6 +253,7 @@ class ProjectCreateView(MultiplePermissi """ model = Project + form_class = ProjectForm template_name_suffix = "_create_form" # Required permissions. @@ -263,20 +264,6 @@ class ProjectCreateView(MultiplePermissi # Raise authorisation denied exception for unmet permissions. raise_exception = True - def get_form(self, form_class): - """ - Implements an override for the default form constructed for the create - view that includes some better styling of input widgets. - """ - - form = super(ProjectCreateView, self).get_form(form_class) - form.fields["name"].widget.attrs["class"] = "span6" - form.fields["name"].widget.attrs["placeholder"] = "New Project" - form.fields["description"].widget.attrs["class"] = "span6" - form.fields["description"].widget.attrs["placeholder"] = "Description for new project." - - return form - class ProjectUpdateView(MultiplePermissionsRequiredMixin, UpdateView): """ @@ -284,6 +271,7 @@ class ProjectUpdateView(MultiplePermissi """ model = Project + form_class = ProjectForm template_name_suffix = "_update_form" # Required permissions. @@ -294,20 +282,6 @@ class ProjectUpdateView(MultiplePermissi # Raise authorisation denied exception for unmet permissions. raise_exception = True - def get_form(self, form_class): - """ - Implements an override for the default form constructed for the create - view that includes some better styling of input widgets. - """ - - form = super(ProjectUpdateView, self).get_form(form_class) - form.fields["name"].widget.attrs["class"] = "span6" - form.fields["name"].widget.attrs["placeholder"] = "Project name" - form.fields["description"].widget.attrs["class"] = "span6" - form.fields["description"].widget.attrs["placeholder"] = "Description for project." - - return form - class ProjectDeleteView(MultiplePermissionsRequiredMixin, DeleteView): """