possibility to save changes to services (#4575)
This commit is contained in:
parent
4f1b60c11b
commit
dbacf03d96
|
@ -44,7 +44,8 @@
|
|||
{% endif %}
|
||||
{% endif %}
|
||||
<p>
|
||||
<form class="small">
|
||||
<form class="small" method="post" action="{{ service|save_url }}" >
|
||||
{% csrf_token %}
|
||||
{{ service|as_update_form }}
|
||||
<button class="enable-on-change" disabled="disabled">{% trans 'Save' %}</button>
|
||||
</form>
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
from django.core.urlresolvers import reverse_lazy
|
||||
from django.template import Library
|
||||
|
||||
from .. import forms
|
||||
|
@ -7,3 +8,9 @@ register = Library()
|
|||
@register.filter(name='as_update_form')
|
||||
def as_update_form(object):
|
||||
return getattr(forms, object.__class__.__name__ + 'Form')(instance=object).as_p()
|
||||
|
||||
@register.filter(name='save_url')
|
||||
def save_url(object):
|
||||
return reverse_lazy('save-service', kwargs={
|
||||
'service': object.Extra.service_id,
|
||||
'slug': object.slug})
|
||||
|
|
|
@ -7,6 +7,7 @@ urlpatterns = patterns('',
|
|||
url(r'^check_operational/(?P<service>\w+)/(?P<slug>[\w-]+)$',
|
||||
operational_check_view, name='operational-check'),
|
||||
url(r'^new-(?P<service>\w+)$', ServiceCreateView.as_view()),
|
||||
url(r'^save-(?P<service>\w+)/(?P<slug>[\w-]+)$', ServiceUpdateView.as_view(), name='save-service'),
|
||||
url(r'^installed_services.json$', installed_services_json_view),
|
||||
url(r'^operational_services.json$', operational_services_json_view),
|
||||
)
|
||||
|
|
|
@ -5,7 +5,7 @@ from django.conf import settings
|
|||
from django.core.urlresolvers import reverse_lazy
|
||||
from django.http import HttpResponse
|
||||
from django.views.generic.base import TemplateView
|
||||
from django.views.generic.edit import CreateView
|
||||
from django.views.generic.edit import CreateView, UpdateView
|
||||
|
||||
from .models import Authentic, Wcs, AVAILABLE_SERVICES
|
||||
from . import forms, utils
|
||||
|
@ -63,6 +63,36 @@ class ServiceCreateView(CreateView):
|
|||
return None
|
||||
|
||||
|
||||
class ServiceUpdateView(UpdateView):
|
||||
success_url = reverse_lazy('environment-home')
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(ServiceUpdateView, self).get_context_data(**kwargs)
|
||||
context['model_name'] = self.model._meta.verbose_name
|
||||
return context
|
||||
|
||||
def get_template_names(self):
|
||||
return 'environment/service_form.html'
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
self.service_id = kwargs.pop('service')
|
||||
self.get_form_class()
|
||||
return super(ServiceUpdateView, self).get(request, *args, **kwargs)
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
self.service_id = kwargs.pop('service')
|
||||
self.get_form_class()
|
||||
return super(ServiceUpdateView, self).post(request, *args, **kwargs)
|
||||
|
||||
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):
|
||||
if service == 'wcs':
|
||||
object = Wcs.objects.get(slug=slug)
|
||||
|
|
Loading…
Reference in New Issue