Prod site now working. Changes made to .conf file to effect this.
This commit is contained in:
		
							parent
							
								
									8c1a05dd04
								
							
						
					
					
						commit
						a56ea57178
					
				
					 2 changed files with 213 additions and 2 deletions
				
			
		|  | @ -1,4 +1,4 @@ | |||
| WSGIPythonPath /srv/http/2017.pycon-au.org/symposion/website:/srv/http/2017.pycon-au.org/symposion/lib/python2.7/site-packages | ||||
| WSGIPythonPath /srv/http/2017.pycon-au.org/symposion/website:/srv/http/2017.pycon-au.org/symposion/lib/python2.7/site-packages:/srv/http/2017.pycon-au.org/symposion/lib/python2.7 | ||||
| 
 | ||||
| <VirtualHost 192.55.98.190:80> | ||||
| 	ServerAdmin webmaster@pycon-au.org | ||||
|  | @ -9,6 +9,7 @@ WSGIPythonPath /srv/http/2017.pycon-au.org/symposion/website:/srv/http/2017.pyco | |||
| 	Alias /site_media/static/pyconau2017/ /srv/http/2017.pycon-au.org/symposion/website/static/dist/pyconau2017/ | ||||
| 	 | ||||
| 	Alias /site_media/static/admin/ /srv/http/2017.pycon-au.org/symposion/lib/python2.7/site-packages/django/contrib/admin/static/admin/ | ||||
| 
 | ||||
| 	Alias /site_media/static/wagtailadmin/ /srv/http/2017.pycon-au.org/symposion/lib/python2.7/site-packages/wagtail/wagtailadmin/static/wagtailadmin/ | ||||
| 
 | ||||
| 	<Directory /srv/http/2017.pycon-au.org/symposion/website/static/dist/pyconau2017> | ||||
|  | @ -17,7 +18,7 @@ WSGIPythonPath /srv/http/2017.pycon-au.org/symposion/website:/srv/http/2017.pyco | |||
| 		# Require all granted | ||||
| 	</Directory> | ||||
| 
 | ||||
| 	WSGIDaemonProcess 2017.pycon-au.org python-path="/srv/http/2017.pycon-au.org/symposion/website:/srv/http/2017.pycon-au.org/symposion/lib/python2.7/site-packages" home=/srv/http/2017.pycon-au.org/symposion/website user=nicks group=www-data | ||||
| 	WSGIDaemonProcess 2017.pycon-au.org python-path="/srv/http/2017.pycon-au.org/symposion/website:/srv/http/2017.pycon-au.org/symposion/lib/python2.7/site-packages:/srv/http/2017.pycon-au.org/symposion/lib/python2.7" home=/srv/http/2017.pycon-au.org/symposion/website user=nicks group=www-data | ||||
| 	WSGIProcessGroup 2017.pycon-au.org | ||||
| 
 | ||||
| 	<Directory /srv/http/2017.pycon-au.org/symposion/website> | ||||
|  |  | |||
							
								
								
									
										210
									
								
								static/dist/js/jquery.formset.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										210
									
								
								static/dist/js/jquery.formset.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,210 @@ | |||
| /** | ||||
| * Django formset helper | ||||
| */ | ||||
| (function($) { | ||||
|     "use strict"; | ||||
| 
 | ||||
|     var pluginName = 'formset'; | ||||
| 
 | ||||
|     /** | ||||
|     * Wraps up a formset, allowing adding, and removing forms | ||||
|     */ | ||||
|     var Formset = function(el, options) { | ||||
|         var _this = this; | ||||
| 
 | ||||
|         //Defaults:
 | ||||
|         this.opts = $.extend({}, Formset.defaults, options); | ||||
| 
 | ||||
|         this.$formset = $(el); | ||||
|         this.$emptyForm = this.$formset.find(this.opts.emptyForm); | ||||
|         this.$body = this.$formset.find(this.opts.body); | ||||
|         this.$add = this.$formset.find(this.opts.add); | ||||
| 
 | ||||
|         this.formsetPrefix = $(el).data('formset-prefix'); | ||||
| 
 | ||||
|         // Bind to the `Add form` button
 | ||||
|         this.addForm = $.proxy(this, 'addForm'); | ||||
|         this.$add.click(this.addForm); | ||||
| 
 | ||||
|         // Bind receiver to `formAdded` and `formDeleted` events
 | ||||
|         this.$formset.on('formAdded formDeleted', this.opts.form, $.proxy(this, 'checkMaxForms')); | ||||
| 
 | ||||
|         // Set up the existing forms
 | ||||
|         this.$forms().each(function(i, form) { | ||||
|             var $form = $(form); | ||||
|             _this.bindForm($(this), i); | ||||
|         }); | ||||
| 
 | ||||
|         // Store a reference to this in the formset element
 | ||||
|         this.$formset.data(pluginName, this); | ||||
| 
 | ||||
|         var extras = ['animateForms']; | ||||
|         $.each(extras, function(i, extra) { | ||||
|             if ((extra in _this.opts) && (_this.opts[extra])) { | ||||
|                 _this[extra](); | ||||
|             } | ||||
|         }); | ||||
|     }; | ||||
| 
 | ||||
|     Formset.defaults = { | ||||
|         form: '[data-formset-form]', | ||||
|         emptyForm: 'script[type=form-template][data-formset-empty-form]', | ||||
|         body: '[data-formset-body]', | ||||
|         add: '[data-formset-add]', | ||||
|         deleteButton: '[data-formset-delete-button]', | ||||
|         hasMaxFormsClass: 'has-max-forms', | ||||
|         animateForms: false | ||||
|     }; | ||||
| 
 | ||||
|     Formset.prototype.addForm = function() { | ||||
|         // Don't proceed if the number of maximum forms has been reached
 | ||||
|         if (this.hasMaxForms()) { | ||||
|             throw new Error("MAX_NUM_FORMS reached"); | ||||
|         } | ||||
| 
 | ||||
|         var newIndex = this.totalFormCount(); | ||||
|         this.$managementForm('TOTAL_FORMS').val(newIndex + 1); | ||||
| 
 | ||||
|         var newFormHtml = this.$emptyForm.html() | ||||
|             .replace(new RegExp('__prefix__', 'g'), newIndex) | ||||
|             .replace(new RegExp('<\\\\/script>', 'g'), '</script>'); | ||||
| 
 | ||||
|         var $newFormFragment = $($.parseHTML(newFormHtml, this.$body.document, true)); | ||||
|         this.$body.append($newFormFragment); | ||||
| 
 | ||||
|         var $newForm = $newFormFragment.filter(this.opts.form); | ||||
|         this.bindForm($newForm, newIndex); | ||||
| 
 | ||||
|         return $newForm; | ||||
|     }; | ||||
| 
 | ||||
|     /** | ||||
|     * Attach any events needed to a new form | ||||
|     */ | ||||
|     Formset.prototype.bindForm = function($form, index) { | ||||
|         var prefix = this.formsetPrefix + '-' + index; | ||||
|         $form.data(pluginName + '__formPrefix', prefix); | ||||
| 
 | ||||
|         var $delete = $form.find('[name=' + prefix + '-DELETE]'); | ||||
| 
 | ||||
|         var onChangeDelete = function() { | ||||
|             if ($delete.is(':checked')) { | ||||
|                 $form.attr('data-formset-form-deleted', ''); | ||||
|                 // Remove required property and pattern attribute to allow submit, back it up to data field
 | ||||
|                 $form.find(':required').data(pluginName + '-required-field', true).prop('required', false); | ||||
|                 $form.find('input[pattern]').each(function() { | ||||
|                     var pattern = $(this).attr('pattern'); | ||||
|                     $(this).data(pluginName + '-field-pattern', pattern).removeAttr('pattern'); | ||||
|                 }); | ||||
|                 $form.trigger('formDeleted'); | ||||
|             } else { | ||||
|                 $form.removeAttr('data-formset-form-deleted'); | ||||
|                 // Restore required property and pattern attributes from data field
 | ||||
|                 $form.find('*').filter(function() { | ||||
|                     return $(this).data(pluginName + '-required-field') === true; | ||||
|                 }).prop('required', true); | ||||
|                 $form.find('input').each(function() { | ||||
|                     var pattern = $(this).data(pluginName + '-field-pattern'); | ||||
|                     if (pattern) { | ||||
|                         $(this).attr('pattern', pattern); | ||||
|                     } | ||||
|                 }); | ||||
|                 $form.trigger('formAdded'); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         // Trigger `formAdded` / `formDeleted` events when delete checkbox value changes
 | ||||
|         $delete.change(onChangeDelete); | ||||
| 
 | ||||
|         // This will trigger `formAdded` for newly created forms.
 | ||||
|         // It will also trigger `formAdded` or `formDeleted` for all forms when
 | ||||
|         // the Formset is first created.
 | ||||
|         // setTimeout so the caller can register events before the events are
 | ||||
|         // triggered, during initialisation.
 | ||||
|         window.setTimeout(onChangeDelete); | ||||
| 
 | ||||
|         // Delete the form if the delete button is pressed
 | ||||
|         var $deleteButton = $form.find(this.opts.deleteButton); | ||||
|         $deleteButton.bind('click', function() { | ||||
|             $delete.attr('checked', true).change(); | ||||
|         }); | ||||
|     }; | ||||
| 
 | ||||
|     Formset.prototype.$forms = function() { | ||||
|         return this.$body.find(this.opts.form); | ||||
|     }; | ||||
|     Formset.prototype.$managementForm = function(name) { | ||||
|         return this.$formset.find('[name=' + this.formsetPrefix + '-' + name + ']'); | ||||
|     }; | ||||
| 
 | ||||
|     Formset.prototype.totalFormCount = function() { | ||||
|         return this.$forms().length; | ||||
|     }; | ||||
| 
 | ||||
|     Formset.prototype.deletedFormCount = function() { | ||||
|         return this.$forms().filter('[data-formset-form-deleted]').length; | ||||
|     }; | ||||
| 
 | ||||
|     Formset.prototype.activeFormCount = function() { | ||||
|         return this.totalFormCount() - this.deletedFormCount(); | ||||
|     }; | ||||
| 
 | ||||
|     Formset.prototype.hasMaxForms = function() { | ||||
|         var maxForms = parseInt(this.$managementForm('MAX_NUM_FORMS').val(), 10) || 1000; | ||||
|         return this.activeFormCount() >= maxForms; | ||||
|     }; | ||||
| 
 | ||||
|     Formset.prototype.checkMaxForms = function() { | ||||
|         if (this.hasMaxForms()) { | ||||
|             this.$formset.addClass(this.opts.hasMaxFormsClass); | ||||
|             this.$add.attr('disabled', 'disabled'); | ||||
|         } else { | ||||
|             this.$formset.removeClass(this.opts.hasMaxFormsClass); | ||||
|             this.$add.removeAttr('disabled'); | ||||
|         } | ||||
|     }; | ||||
| 
 | ||||
|     Formset.prototype.animateForms = function() { | ||||
|         this.$formset.on('formAdded', this.opts.form, function() { | ||||
|             var $form = $(this); | ||||
|             $form.slideUp(0); | ||||
|             $form.slideDown(); | ||||
|         }).on('formDeleted', this.opts.form, function() { | ||||
|             var $form = $(this); | ||||
|             $form.slideUp(); | ||||
|         }); | ||||
|         this.$forms().filter('[data-formset-form-deleted]').slideUp(0); | ||||
|     }; | ||||
| 
 | ||||
|     Formset.getOrCreate = function(el, options) { | ||||
|         var rev = $(el).data(pluginName); | ||||
|         if (!rev) { | ||||
|             rev = new Formset(el, options); | ||||
|         } | ||||
| 
 | ||||
|         return rev; | ||||
|     }; | ||||
| 
 | ||||
|     $.fn[pluginName] = function() { | ||||
|         var options, fn, args; | ||||
|         // Create a new Formset for each element
 | ||||
|         if (arguments.length === 0 || (arguments.length === 1 && $.type(arguments[0]) != 'string')) { | ||||
|             options = arguments[0]; | ||||
|             return this.each(function() { | ||||
|                 return Formset.getOrCreate(this, options); | ||||
|             }); | ||||
|         } | ||||
| 
 | ||||
|         // Call a function on each Formset in the selector
 | ||||
|         fn = arguments[0]; | ||||
|         args = $.makeArray(arguments).slice(1); | ||||
| 
 | ||||
|         if (fn in Formset) { | ||||
|             // Call the Formset class method if it exists
 | ||||
|             args.unshift(this); | ||||
|             return Formset[fn].apply(Formset, args); | ||||
|         } else { | ||||
|             throw new Error("Unknown function call " + fn + " for $.fn.formset"); | ||||
|         } | ||||
|     }; | ||||
| })(jQuery); | ||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Nick Seidenman (N6)
						Nick Seidenman (N6)