add forms to create authentic & wcs instances

This commit is contained in:
Frédéric Péters 2014-03-25 09:58:04 +01:00
parent 76fa6aa33f
commit e631157930
5 changed files with 80 additions and 3 deletions

25
hobo/environment/forms.py Normal file
View File

@ -0,0 +1,25 @@
from django import forms
from django.template.defaultfilters import slugify
from .models import IdentityProvider, WebForms
class IdentityProviderForm(forms.ModelForm):
class Meta:
model = IdentityProvider
exclude = ('slug',)
def save(self, commit=True):
if not self.instance.slug:
self.instance.slug = slugify(self.instance.title)
return super(IdentityProviderForm, self).save(commit=commit)
class WebFormsForm(forms.ModelForm):
class Meta:
model = WebForms
exclude = ('slug',)
def save(self, commit=True):
if not self.instance.slug:
self.instance.slug = slugify(self.instance.title)
return super(WebFormsForm, self).save(commit=commit)

View File

@ -32,9 +32,12 @@
<script>
$(function() {
$('#new-service').change(function() {
$.get('new-' + $(this).val(), function(data) {
var service_id = $(this).val();
$.get('new-' + service_id, function(data) {
var title = $(data).find('h2').text();
$(data).find('form').dialog({modal: true, title: title, width: 'auto'});
var form = $(data).find('form');
$(form).attr('action', 'new-' + service_id);
$(form).dialog({modal: true, title: title, width: 'auto'});
});
});
});

View File

@ -0,0 +1,22 @@
{% extends "hobo/base.html" %}
{% load i18n %}
{% block appbar %}
<h2>{{ model_name }}</h2>
<span><a href="./">{% trans 'Back to settings' %}</a></span>
{% endblock %}
{% block content %}
<form method="post" enctype="multipart/form-data">
<div id="form-content">
{% csrf_token %}
{{ form.as_p }}
</div>
{% block buttons %}
<button class="enable-on-change">Enregistrer</button>
{% endblock %}
</form>
{% endblock %}

View File

@ -4,4 +4,6 @@ from .views import *
urlpatterns = patterns('',
url(r'^$', HomeView.as_view(), name='environment-home'),
url(r'^new-idp$', IdentityProviderCreateView.as_view()),
url(r'^new-wcs$', WebFormsCreateView.as_view()),
)

View File

@ -1,6 +1,9 @@
from django.core.urlresolvers import reverse_lazy
from django.views.generic.base import TemplateView
from django.views.generic.edit import CreateView
from .models import AVAILABLE_SERVICES
from .models import IdentityProvider, WebForms, AVAILABLE_SERVICES
from .forms import IdentityProviderForm, WebFormsForm
class AvailableService(object):
@ -17,3 +20,25 @@ class HomeView(TemplateView):
context['available_services'] = [
AvailableService(x) for x in AVAILABLE_SERVICES]
return context
class ServiceCreateView(CreateView):
success_url = reverse_lazy('environment-home')
def get_context_data(self, **kwargs):
context = super(ServiceCreateView, 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'
class IdentityProviderCreateView(ServiceCreateView):
form_class = IdentityProviderForm
model = IdentityProvider
class WebFormsCreateView(ServiceCreateView):
form_class = WebFormsForm
model = WebForms