diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-07-02 01:31:53 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-07-02 01:31:53 +0200 |
commit | ca39f96f904b9332179819e68011cf10572faf80 (patch) | |
tree | a2a4783a03c120df41bd4f45b207511039ec8cde /ishtar/ishtar_base/forms_items.py | |
parent | e946d15e8532c40e9581b539691179e8b9dbfa9c (diff) | |
download | Ishtar-ca39f96f904b9332179819e68011cf10572faf80.tar.bz2 Ishtar-ca39f96f904b9332179819e68011cf10572faf80.zip |
Packaging of archaelogical items (closes #500)
Diffstat (limited to 'ishtar/ishtar_base/forms_items.py')
-rw-r--r-- | ishtar/ishtar_base/forms_items.py | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/ishtar/ishtar_base/forms_items.py b/ishtar/ishtar_base/forms_items.py index a89dc7cf1..44886cc32 100644 --- a/ishtar/ishtar_base/forms_items.py +++ b/ishtar/ishtar_base/forms_items.py @@ -23,6 +23,8 @@ Items forms definitions import datetime from django import forms +from django.shortcuts import render_to_response +from django.template import RequestContext from django.core import validators from django.core.exceptions import ObjectDoesNotExist from django.utils.safestring import mark_safe @@ -187,8 +189,8 @@ class BaseTreatmentForm(forms.Form): 'location':models.Warehouse} treatment_type = forms.ChoiceField(label=_(u"Treatment type"), choices=[]) person = forms.IntegerField(label=_(u"Person"), - widget=widgets.JQueryAutoComplete( - reverse_lazy('autocomplete-person'), associated_model=models.Person), + widget=widgets.JQueryAutoComplete(reverse_lazy('autocomplete-person'), + associated_model=models.Person, new=True), validators=[models.valid_id(models.Person)]) location = forms.IntegerField(label=_(u"Location"), widget=widgets.JQueryAutoComplete( @@ -212,6 +214,7 @@ class BaseTreatmentForm(forms.Form): class ItemMultipleFormSelection(forms.Form): form_label = _(u"Upstream items") associated_models = {'items':models.Item} + associated_labels = {'items':_(u"Items")} items = forms.CharField(label="", required=False, widget=widgets.JQueryJqGrid(reverse_lazy('get-item'), ItemSelect(), models.Item, multiple=True, multiple_cols=[2, 3, 4]), @@ -328,7 +331,23 @@ treatment_creation_wizard = TreatmentWizard([ ######################## class PackagingWizard(TreatmentWizard): - pass + def save_model(self, dct, m2m, whole_associated_models, request, storage, + form_list, return_object): + dct = self.get_extra_model(dct, request, storage, form_list) + obj = self.get_current_saved_object(request, storage) + items = dct.pop('items') + treatment = models.Treatment(**dct) + treatment.save() + for item in items: + new = item.duplicate(request.user) + item.downstream_treatment = treatment + item.save() + new.upstream_treatment = treatment + new.save() + res = render_to_response('wizard_done.html', {}, + context_instance=RequestContext(request)) + return return_object and (obj, res) or res + class BasePackagingForm(forms.Form): form_label = _(u"Packaging") @@ -337,8 +356,8 @@ class BasePackagingForm(forms.Form): 'location':models.Warehouse} treatment_type = forms.IntegerField(label="", widget=forms.HiddenInput) person = forms.IntegerField(label=_(u"Person"), - widget=widgets.JQueryAutoComplete( - reverse_lazy('autocomplete-person'), associated_model=models.Person), + widget=widgets.JQueryAutoComplete(reverse_lazy('autocomplete-person'), + associated_model=models.Person, new=True), validators=[models.valid_id(models.Person)]) location = forms.IntegerField(label=_(u"Location"), widget=widgets.JQueryAutoComplete( |