Changeset - c5b0177debb4
[Not reviewed]
default
0 3 0
Branko Majic (branko) - 11 years ago 2013-07-24 21:22:05
branko@majic.rs
CONNT-13: Implemented the ProjectForm model form. Updated tests.
3 files changed with 18 insertions and 61 deletions:
0 comments (0 inline, 0 general)
conntrackt/forms.py
Show inline comments
 
@@ -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"}
conntrackt/tests/test_views.py
Show inline comments
 
@@ -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):
 
        """
conntrackt/views.py
Show inline comments
 
@@ -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):
 
    """
0 comments (0 inline, 0 general)