diff options
| -rw-r--r-- | archaeological_warehouse/forms.py | 35 | ||||
| -rw-r--r-- | archaeological_warehouse/ishtar_menu.py | 32 | ||||
| -rw-r--r-- | archaeological_warehouse/models.py | 2 | ||||
| -rw-r--r-- | archaeological_warehouse/urls.py | 11 | ||||
| -rw-r--r-- | archaeological_warehouse/views.py | 18 | ||||
| -rw-r--r-- | archaeological_warehouse/wizards.py | 12 | 
6 files changed, 94 insertions, 16 deletions
| diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index b34be3ab3..f73dac22e 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -39,7 +39,36 @@ def get_warehouse_field(label=_(u"Warehouse"), required=True):                                validators=[valid_id(models.Warehouse)]) +class WarehouseSelect(TableSelect): +    name = forms.CharField(label=_(u"Name")) +    warehouse_type = forms.ChoiceField(label=_(u"Warehouse type"), choices=[]) +    towns = forms.CharField(label=_(u"Town")) + +    def __init__(self, *args, **kwargs): +        super(WarehouseSelect, self).__init__(*args, **kwargs) +        self.fields['warehouse_type'].choices = \ +            models.WarehouseType.get_types() +        self.fields['warehouse_type'].help_text = \ +            models.WarehouseType.get_help() + + +class WarehouseFormSelection(forms.Form): +    form_label = _("Warehouse search") +    associated_models = {'pk': models.Warehouse} +    currents = {'pk': models.Warehouse} +    pk = forms.IntegerField( +        label="", required=False, +        widget=widgets.JQueryJqGrid( +            reverse_lazy('get-warehouse'), +            WarehouseSelect, models.Warehouse), +        validators=[valid_id(models.Warehouse)]) + +  class WarehouseForm(ManageOldType, forms.Form): +    form_label = _(u"Warehouse") +    associated_models = {'warehouse_type': models.WarehouseType, +                         'person_in_charge': Person} +      name = forms.CharField(label=_(u"Name"), max_length=40,                             validators=[name_validator])      warehouse_type = forms.ChoiceField(label=_(u"Warehouse type"), @@ -48,8 +77,8 @@ class WarehouseForm(ManageOldType, forms.Form):          label=_(u"Person in charge"),          widget=widgets.JQueryAutoComplete(              reverse_lazy('autocomplete-person'), -            associated_model=models.Person), -        validators=[valid_id(models.Person)], +            associated_model=Person), +        validators=[valid_id(Person)],          required=False)      comment = forms.CharField(label=_(u"Comment"), widget=forms.Textarea,                                required=False) @@ -63,7 +92,7 @@ class WarehouseForm(ManageOldType, forms.Form):      country = forms.CharField(label=_(u"Country"), max_length=30,                                required=False)      phone = forms.CharField(label=_(u"Phone"), max_length=18, required=False) -    mobile_phone = forms.CharField(label=_(u"Town"), max_length=18, +    mobile_phone = forms.CharField(label=_(u"Mobile phone"), max_length=18,                                     required=False)      def __init__(self, *args, **kwargs): diff --git a/archaeological_warehouse/ishtar_menu.py b/archaeological_warehouse/ishtar_menu.py index c69ad760d..45c73a03b 100644 --- a/archaeological_warehouse/ishtar_menu.py +++ b/archaeological_warehouse/ishtar_menu.py @@ -23,6 +23,8 @@ from ishtar_common.menu_base import SectionItem, MenuItem  from archaeological_finds.models import Treatment +import models +  # be carreful: each access_controls must be relevant with check_rights in urls @@ -34,18 +36,24 @@ MENU_SECTIONS = [                   model=Treatment,                   access_controls=['add_treatment', 'add_own_treatment']),      ])), -] -""" -    (60, SectionItem('warehouse', _(u"Warehouse"), +    (80, SectionItem('warehouse', _(u"Warehouse"),          childs=[ -                MenuItem('warehouse_inventory', _(u"Inventory"), -                    model=models.Warehouse, -                    access_controls=['change_warehouse',]), -                MenuItem('warehouse_recording', _(u"Recording"), -                    model=Treatment, -                    access_controls=['add_treatment', 'add_own_treatment']), -                MenuItem('warehouse_lend', _(u"Lending"), -                    model=Treatment, -                    access_controls=['add_treatment', 'add_own_treatment']), +            MenuItem('warehouse_creation', _(u"Creation"), +                     model=models.Warehouse, +                     access_controls=['add_warehouse',]), +            MenuItem('warehouse_modification', _(u"Modification"), +                     model=models.Warehouse, +                     access_controls=['change_warehouse',]),          ])) +] +""" +    MenuItem('warehouse_inventory', _(u"Inventory"), +        model=models.Warehouse, +        access_controls=['change_warehouse',]), +    MenuItem('warehouse_recording', _(u"Recording"), +        model=Treatment, +        access_controls=['add_treatment', 'add_own_treatment']), +    MenuItem('warehouse_lend', _(u"Lending"), +        model=Treatment, +        access_controls=['add_treatment', 'add_own_treatment']),  """ diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index 389cc4f5a..71b5bf6d7 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -43,6 +43,8 @@ class Warehouse(Address, OwnPerms):          verbose_name=_(u"Person in charge"), null=True, blank=True)      comment = models.TextField(_(u"Comment"), null=True, blank=True) +    TABLE_COLS = ['name', 'warehouse_type'] +      class Meta:          verbose_name = _(u"Warehouse")          verbose_name_plural = _(u"Warehouses") diff --git a/archaeological_warehouse/urls.py b/archaeological_warehouse/urls.py index 9094f0a91..f6f9d73c0 100644 --- a/archaeological_warehouse/urls.py +++ b/archaeological_warehouse/urls.py @@ -19,7 +19,7 @@  from django.conf.urls.defaults import * -# from ishtar_common.wizards import check_rights +from ishtar_common.wizards import check_rights  import views  # be carreful: each check_rights must be relevant with ishtar_menu @@ -41,6 +41,15 @@ urlpatterns += patterns(          'new_container', name='new-container'),      url(r'get-container/$', 'get_container',          name='get-container'), +    url(r'get-warehouse/(?P<type>.+)?$', 'get_warehouse', +        name='get-warehouse'),      url(r'autocomplete-container/?$',          'autocomplete_container', name='autocomplete-container'), +    url(r'^warehouse_creation/(?P<step>.+)?$', +        check_rights(['add_warehouse'])( +            views.warehouse_creation_wizard), name='warehouse_creation'), +    url(r'^warehouse_modification/(?P<step>.+)?$', +        check_rights(['change_warehouse'])( +            views.warehouse_modification_wizard), +        name='warehouse_modification'),  ) diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py index d8027a9a6..385a373e7 100644 --- a/archaeological_warehouse/views.py +++ b/archaeological_warehouse/views.py @@ -31,6 +31,8 @@ from forms import *  get_container = get_item(models.Container, 'get_container', 'container') +get_warehouse = get_item(models.Warehouse, 'get_warehouse', 'warehouse') +  new_warehouse = new_item(models.Warehouse, WarehouseForm)  new_container = new_item(models.Container, ContainerForm) @@ -87,6 +89,22 @@ warehouse_packaging_wizard = PackagingWizard.as_view([      label=_(u"Packaging"),      url_name='warehouse_packaging',) +warehouse_creation_wizard = WarehouseWizard.as_view([ +    ("warehouse-warehouse_creation", WarehouseForm), +    ('final-warehouse_creation', FinalForm)], +    label=_(u"Warehouse creation"), +    url_name='warehouse_creation', +) + +warehouse_modification_wizard = WarehouseModificationWizard.as_view([ +    ('selec-warehouse_modification', WarehouseFormSelection), +    ("warehouse-warehouse_modification", WarehouseForm), +    ('final-warehouse_modification', FinalForm)], +    label=_(u"Warehouse modification"), +    url_name='warehouse_modification', +) + +  """  warehouse_packaging_wizard = ItemSourceWizard.as_view([           ('selec-warehouse_packaging', ItemsSelection), diff --git a/archaeological_warehouse/wizards.py b/archaeological_warehouse/wizards.py index 62b441e00..f5aee5c1e 100644 --- a/archaeological_warehouse/wizards.py +++ b/archaeological_warehouse/wizards.py @@ -20,9 +20,12 @@  from django.shortcuts import render_to_response  from django.template import RequestContext +from ishtar_common.wizards import Wizard  from archaeological_finds.wizards import TreatmentWizard  from archaeological_finds.models import Treatment +import models +  class PackagingWizard(TreatmentWizard):      basket_step = 'base-packaging' @@ -40,3 +43,12 @@ class PackagingWizard(TreatmentWizard):          res = render_to_response('ishtar/wizard/wizard_done.html', {},                                   context_instance=RequestContext(self.request))          return return_object and (obj, res) or res + + +class WarehouseWizard(Wizard): +    model = models.Warehouse + + +class WarehouseModificationWizard(Wizard): +    model = models.Warehouse +    modification = True | 
