do not duplicate code for every kind of services
This commit is contained in:
parent
904c83be25
commit
f6b5877928
|
@ -1,14 +1,9 @@
|
|||
from django.template import Library
|
||||
|
||||
from ..models import Authentic, Wcs, AVAILABLE_SERVICES
|
||||
from ..forms import AuthenticForm, WcsForm
|
||||
from .. import forms
|
||||
|
||||
register = Library()
|
||||
|
||||
@register.filter(name='as_update_form')
|
||||
def as_update_form(object):
|
||||
if isinstance(object, Authentic):
|
||||
return AuthenticForm(instance=object).as_p()
|
||||
if isinstance(object, Wcs):
|
||||
return WcsForm(instance=object).as_p()
|
||||
return None
|
||||
return getattr(forms, object.__class__.__name__ + 'Form')(instance=object).as_p()
|
||||
|
|
|
@ -6,8 +6,7 @@ urlpatterns = patterns('',
|
|||
url(r'^$', HomeView.as_view(), name='environment-home'),
|
||||
url(r'^check_operational/(?P<service>\w+)/(?P<slug>[\w-]+)$',
|
||||
operational_check_view, name='operational-check'),
|
||||
url(r'^new-idp$', AuthenticCreateView.as_view()),
|
||||
url(r'^new-wcs$', WcsCreateView.as_view()),
|
||||
url(r'^new-(?P<service>\w+)$', ServiceCreateView.as_view()),
|
||||
url(r'^installed_services.json$', installed_services_json_view),
|
||||
url(r'^operational_services.json$', operational_services_json_view),
|
||||
)
|
||||
|
|
|
@ -8,8 +8,7 @@ from django.views.generic.base import TemplateView
|
|||
from django.views.generic.edit import CreateView
|
||||
|
||||
from .models import Authentic, Wcs, AVAILABLE_SERVICES
|
||||
from .forms import AuthenticForm, WcsForm
|
||||
from . import utils
|
||||
from . import forms, utils
|
||||
|
||||
|
||||
class AvailableService(object):
|
||||
|
@ -47,15 +46,21 @@ class ServiceCreateView(CreateView):
|
|||
def get_template_names(self):
|
||||
return 'environment/service_form.html'
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
self.service_id = kwargs.pop('service')
|
||||
return super(ServiceCreateView, self).get(request, *args, **kwargs)
|
||||
|
||||
class AuthenticCreateView(ServiceCreateView):
|
||||
form_class = AuthenticForm
|
||||
model = Authentic
|
||||
def post(self, request, *args, **kwargs):
|
||||
self.service_id = kwargs.pop('service')
|
||||
return super(ServiceCreateView, self).post(request, *args, **kwargs)
|
||||
|
||||
|
||||
class WcsCreateView(ServiceCreateView):
|
||||
form_class = WcsForm
|
||||
model = Wcs
|
||||
def get_form_class(self):
|
||||
for service in AVAILABLE_SERVICES:
|
||||
if service.Extra.service_id == self.service_id:
|
||||
form_class = getattr(forms, service.__name__ + 'Form')
|
||||
self.model = form_class.Meta.model
|
||||
return form_class
|
||||
return None
|
||||
|
||||
|
||||
def operational_check_view(request, service, slug, **kwargs):
|
||||
|
|
Loading…
Reference in New Issue