diff options
| -rw-r--r-- | archaeological_finds/forms.py | 21 | ||||
| -rw-r--r-- | archaeological_finds/ishtar_menu.py | 26 | ||||
| -rw-r--r-- | archaeological_finds/urls.py | 5 | ||||
| -rw-r--r-- | archaeological_finds/views.py | 29 | ||||
| -rw-r--r-- | ishtar_common/views.py | 2 | 
5 files changed, 80 insertions, 3 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index e3207a2f5..2b3586979 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -390,6 +390,27 @@ FindSourceFormSelection = get_form_selection(      _(u"You should select a document.")) +class NewFindBasketForm(forms.ModelForm): +    class Meta: +        model = models.FindBasket +        fields = ('label', 'comment') + +    def __init__(self, *args, **kwargs): +        self.user = kwargs.pop('user') +        super(NewFindBasketForm, self).__init__(*args, **kwargs) + +    def clean(self): +        q = models.FindBasket.objects.filter(user=self.user, +                                             label=self.cleaned_data['label']) +        if q.count(): +            raise forms.ValidationError(_(u"Another basket already exist with " +                                          u"this name.")) +        return self.cleaned_data + +    def save(self, commit=True): +        self.instance.user = self.user +        return super(NewFindBasketForm, self).save(commit) +  """  ####################################  # Source management for treatments # diff --git a/archaeological_finds/ishtar_menu.py b/archaeological_finds/ishtar_menu.py index daa12a37b..9eaf601f2 100644 --- a/archaeological_finds/ishtar_menu.py +++ b/archaeological_finds/ishtar_menu.py @@ -56,6 +56,32 @@ MENU_SECTIONS = [                   access_controls=['change_find',                                    'change_own_find']),               SectionItem( +                 'find_basket', _(u"Basket"), +                 childs=[ +                     MenuItem('find_basket_creation', +                              _(u"Creation"), +                              model=models.FindBasket, +                              access_controls=['change_find', +                                               'change_own_find']), +                     MenuItem('find_basket_modification_add', +                              _(u"Add items"), +                              model=models.FindBasket, +                              access_controls=[ +                                  'change_find', +                                  'change_own_find']), +                     MenuItem('find_basket_modification_del', +                              _(u"Delete items"), +                              model=models.FindBasket, +                              access_controls=[ +                                  'change_find', +                                  'change_own_find']), +                     MenuItem('find_basket_deletion', +                              _(u"Deletion"), +                              model=models.FindBasket, +                              access_controls=['change_find', +                                               'change_own_find']), +                 ]), +             SectionItem(                   'find_source', _(u"Documentation"),                   childs=[                       MenuItem('find_source_creation', diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index acf9c46a6..bbf9aa976 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -1,6 +1,6 @@  #!/usr/bin/env python  # -*- coding: utf-8 -*- -# Copyright (C) 2010-2015 Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2010-2016 Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet>  # This program is free software: you can redistribute it and/or modify  # it under the terms of the GNU Affero General Public License as @@ -55,6 +55,9 @@ urlpatterns = patterns(          check_rights(['change_find', 'change_own_find'])(              views.find_source_deletion_wizard),          name='find_source_deletion'), +    url(r'^find_basket_creation/$', +        check_rights(['change_find', 'change_own_find'])( +            views.NewFindBasketView.as_view()), name='new_findbasket'),  )  urlpatterns += patterns( diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 46594a2b0..e40a3acb9 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -18,16 +18,19 @@  # See the file COPYING for details.  from django.core.urlresolvers import reverse +from django.http import HttpResponseRedirect  from django.shortcuts import redirect  from django.utils.translation import ugettext_lazy as _ +from django.views.generic.edit import CreateView, DeleteView  from ishtar_common.forms import FinalForm  from ishtar_common.forms_common import SourceForm, AuthorFormset, \      SourceDeletionForm +from ishtar_common.models import IshtarUser  from archaeological_context_records.forms import RecordFormSelection  from ishtar_common.views import get_item, show_item, revert_item, \ -    get_autocomplete_generic +    get_autocomplete_generic, IshtarMixin, LoginRequiredMixin  from ishtar_common.wizards import SearchWizard  from wizards import * @@ -156,6 +159,30 @@ autocomplete_preservationtype = get_autocomplete_generic(      models.PreservationType)  autocomplete_integritytype = get_autocomplete_generic(models.IntegrityType) + +class NewFindBasketView(IshtarMixin, LoginRequiredMixin, CreateView): +    template_name = 'ishtar/form.html' +    model = models.FindBasket +    form_class = NewFindBasketForm +    page_name = _(u"New basket") + +    def get_form_kwargs(self): +        kwargs = super(NewFindBasketView, self).get_form_kwargs() +        kwargs['user'] = IshtarUser.objects.get(pk=self.request.user.pk) +        print(kwargs) +        return kwargs + +    def get_success_url(self): +        return reverse('new_findbasket') + +    def form_valid(self, form): +        self.object = form.save() +        return HttpResponseRedirect(self.get_success_url()) + + +class DeleteFindBasketView(IshtarMixin, LoginRequiredMixin, DeleteView): +    pass +  """  treatment_creation_wizard = TreatmentWizard.as_view([      ('basetreatment-treatment_creation', BaseTreatmentForm), diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 86664d4e7..752cbcc74 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -1,6 +1,6 @@  #!/usr/bin/env python  # -*- coding: utf-8 -*- -# Copyright (C) 2010-2015  Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2010-2016  Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet>  # This program is free software: you can redistribute it and/or modify  # it under the terms of the GNU Affero General Public License as  | 
