From 91f6bb555756911d513345990c3b146c1e2a3b8f Mon Sep 17 00:00:00 2001 From: Tom Price Date: Wed, 3 Dec 2014 11:17:07 +0000 Subject: [PATCH] Updates to AJAX forms and adding autofill function to the event form when adding things via AJAX --- RIGS/templates/RIGS/event_form.html | 19 ++---- RIGS/templates/RIGS/organisation_form.html | 2 +- RIGS/templates/RIGS/person_form.html | 4 +- RIGS/templates/RIGS/venue_form.html | 2 +- RIGS/views.py | 70 +++++++++++++++------ db.sqlite3 | Bin 25445376 -> 25445376 bytes templates/base.html | 8 +++ templates/base_ajax.html | 13 +++- 8 files changed, 81 insertions(+), 37 deletions(-) diff --git a/RIGS/templates/RIGS/event_form.html b/RIGS/templates/RIGS/event_form.html index 90698f29..0b2501df 100644 --- a/RIGS/templates/RIGS/event_form.html +++ b/RIGS/templates/RIGS/event_form.html @@ -34,7 +34,6 @@ $(document).ready(function () { {% if not object.pk and not form.errors %} - $('.form-hws').slideUp(function () { $('.form-is_rig').slideUp(); }); @@ -111,11 +110,9 @@ data-target="{{ form.person.id_for_label }}"/>
- +
@@ -138,11 +135,9 @@ data-target="{{ form.organisation.id_for_label }}"/>
- +
@@ -199,11 +194,9 @@ data-target="{{ form.venue.id_for_label }}"/>
- +
diff --git a/RIGS/templates/RIGS/organisation_form.html b/RIGS/templates/RIGS/organisation_form.html index 3ac87195..f0298ffb 100644 --- a/RIGS/templates/RIGS/organisation_form.html +++ b/RIGS/templates/RIGS/organisation_form.html @@ -7,7 +7,7 @@

{{ object.pk|yesno:"Edit,Add" }} Organisation

-
{% csrf_token %} + {% csrf_token %}
{% include 'form_errors.html' %} diff --git a/RIGS/templates/RIGS/person_form.html b/RIGS/templates/RIGS/person_form.html index ae980d3f..a5720b9f 100644 --- a/RIGS/templates/RIGS/person_form.html +++ b/RIGS/templates/RIGS/person_form.html @@ -7,10 +7,10 @@

{{ object.pk|yesno:"Edit,Add" }} Person

- {% csrf_token %} + {% csrf_token %}
+ {% include 'form_errors.html' %}
- {% include 'form_errors.html' %}
diff --git a/RIGS/templates/RIGS/venue_form.html b/RIGS/templates/RIGS/venue_form.html index d24a0a22..8d058502 100644 --- a/RIGS/templates/RIGS/venue_form.html +++ b/RIGS/templates/RIGS/venue_form.html @@ -7,7 +7,7 @@

{{ object.pk|yesno:"Edit,Add" }} Venue

- {% csrf_token %} + {% csrf_token %}
{% include 'form_errors.html' %} diff --git a/RIGS/views.py b/RIGS/views.py index 3646ab5a..35d413da 100644 --- a/RIGS/views.py +++ b/RIGS/views.py @@ -69,18 +69,28 @@ class PersonCreate(generic.CreateView): model = models.Person def get_success_url(self): - return reverse_lazy('person_detail', kwargs={ - 'pk': self.object.pk, - }) + if self.request.is_ajax(): + url = reverse_lazy('closemodal') + messages.info(self.request, "modalobject="+serializers.serialize("json", [self.object])) + else: + url = reverse_lazy('person_detail', kwargs={ + 'pk': self.object.pk, + }) + return url class PersonUpdate(generic.UpdateView): model = models.Person def get_success_url(self): - return reverse_lazy('person_detail', kwargs={ - 'pk': self.object.pk, - }) + if self.request.is_ajax(): + url = reverse_lazy('closemodal') + messages.info(self.request, "modalobject="+serializers.serialize("json", [self.object])) + else: + url = reverse_lazy('person_detail', kwargs={ + 'pk': self.object.pk, + }) + return url class OrganisationList(generic.ListView): @@ -107,18 +117,28 @@ class OrganisationCreate(generic.CreateView): model = models.Organisation def get_success_url(self): - return reverse_lazy('organisation_detail', kwargs={ - 'pk': self.object.pk, - }) + if self.request.is_ajax(): + url = reverse_lazy('closemodal') + messages.info(self.request, "modalobject="+serializers.serialize("json", [self.object])) + else: + url = reverse_lazy('organisation_detail', kwargs={ + 'pk': self.object.pk, + }) + return url class OrganisationUpdate(generic.UpdateView): model = models.Organisation def get_success_url(self): - return reverse_lazy('organisation_detail', kwargs={ - 'pk': self.object.pk, - }) + if self.request.is_ajax(): + url = reverse_lazy('closemodal') + messages.info(self.request, "modalobject="+serializers.serialize("json", [self.object])) + else: + url = reverse_lazy('organisation_detail', kwargs={ + 'pk': self.object.pk, + }) + return url class VenueList(generic.ListView): @@ -145,18 +165,28 @@ class VenueCreate(generic.CreateView): model = models.Venue def get_success_url(self): - return reverse_lazy('venue_detail', kwargs={ - 'pk': self.object.pk, - }) + if self.request.is_ajax(): + url = reverse_lazy('closemodal') + messages.info(self.request, "modalobject="+serializers.serialize("json", [self.object])) + else: + url = reverse_lazy('venue_detail', kwargs={ + 'pk': self.object.pk, + }) + return url class VenueUpdate(generic.UpdateView): model = models.Venue def get_success_url(self): - return reverse_lazy('venue_detail', kwargs={ - 'pk': self.object.pk, - }) + if self.request.is_ajax(): + url = reverse_lazy('closemodal') + messages.info(self.request, "modalobject="+serializers.serialize("json", [self.object])) + else: + url = reverse_lazy('venue_detail', kwargs={ + 'pk': self.object.pk, + }) + return url class SecureAPIRequest(generic.View): @@ -189,7 +219,9 @@ class SecureAPIRequest(generic.View): # Response format where applicable format = request.GET.get('format', 'json') - fields = request.GET.get('fields', None).split(',') + fields = request.GET.get('fields', None) + if fields: + fields = fields.split(",") # Supply data for one record if pk: diff --git a/db.sqlite3 b/db.sqlite3 index 0cef2603235732843118f4e400698f7f7285917c..a6fac27ddca99ca68568d1bbe64fe32dcfbc6b3b 100644 GIT binary patch delta 6507 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 diff --git a/templates/base_ajax.html b/templates/base_ajax.html index ab7825a5..298ca314 100644 --- a/templates/base_ajax.html +++ b/templates/base_ajax.html @@ -1,4 +1,4 @@ -