mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-17 13:32:15 +00:00
81 lines
2.1 KiB
Python
81 lines
2.1 KiB
Python
from django.shortcuts import render
|
|
from django.views import generic
|
|
from rigForms import models
|
|
|
|
from django.shortcuts import get_object_or_404
|
|
from django.http.response import HttpResponseRedirect
|
|
from django.core.urlresolvers import reverse_lazy, reverse, NoReverseMatch
|
|
from django.db.models import Q
|
|
|
|
import RIGS
|
|
|
|
class FormCreate(generic.CreateView):
|
|
model = models.Form
|
|
fields = ['data']
|
|
|
|
"""
|
|
Whenever this view is loaded, get the schema from the url
|
|
Expects kwarg "type_pk" to contain PK of required type
|
|
"""
|
|
def dispatch(self, *args, **kwargs):
|
|
schemaType = get_object_or_404(models.Type, pk=kwargs['type_pk'])
|
|
currentSchema = models.Schema.objects.current_schema(schemaType)
|
|
|
|
self.schema = currentSchema
|
|
|
|
self.event = get_object_or_404(RIGS.models.Event, pk=kwargs['event_pk'])
|
|
|
|
return super(FormCreate, self).dispatch(*args, **kwargs)
|
|
|
|
def get_context_data(self, **kwargs):
|
|
context = super(FormCreate, self).get_context_data()
|
|
|
|
context["object"] = {
|
|
"schema": self.schema,
|
|
"event": self.event,
|
|
"data": "{}"
|
|
}
|
|
|
|
return context
|
|
|
|
def form_valid(self, form):
|
|
self.object = form.save(commit=False)
|
|
self.object.event = self.event
|
|
self.object.schema = self.schema
|
|
self.object.save()
|
|
return HttpResponseRedirect(self.get_success_url())
|
|
|
|
def get_success_url(self):
|
|
return reverse_lazy('update_form', kwargs={
|
|
'pk': self.object.pk,
|
|
})
|
|
|
|
class FormUpdate(generic.UpdateView):
|
|
model = models.Form
|
|
fields = ['data']
|
|
|
|
def get_success_url(self):
|
|
return reverse_lazy('update_form', kwargs={
|
|
'pk': self.object.pk,
|
|
})
|
|
|
|
class FormList(generic.ListView):
|
|
model = models.Form
|
|
|
|
def get_queryset(self):
|
|
event = get_object_or_404(RIGS.models.Event,pk=self.kwargs["event_pk"])
|
|
object_list = self.model.objects.filter(Q(event=event))
|
|
|
|
return object_list
|
|
|
|
def get_context_data(self):
|
|
context = super(FormList, self).get_context_data()
|
|
context['event'] = get_object_or_404(RIGS.models.Event,pk=self.kwargs["event_pk"])
|
|
|
|
context['formTypes'] = models.Type.objects.filter(Q(active=True))
|
|
|
|
return context
|
|
|
|
|
|
|