diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-10 20:49:13 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-10 20:49:13 +0200 |
commit | 3dae10a792d49d685debfe52eb7d61b9a6dc93f9 (patch) | |
tree | 45f1d910b67a30e44015735581ec9cdc6db51cdf /archaeological_warehouse | |
parent | 58178a04b3e716a063b1c457018aafe28e5107dd (diff) | |
download | Ishtar-3dae10a792d49d685debfe52eb7d61b9a6dc93f9.tar.bz2 Ishtar-3dae10a792d49d685debfe52eb7d61b9a6dc93f9.zip |
QA: lock/unlock (sites, operations, context records, finds, containers, warehouses)
Diffstat (limited to 'archaeological_warehouse')
-rw-r--r-- | archaeological_warehouse/forms.py | 12 | ||||
-rw-r--r-- | archaeological_warehouse/models.py | 20 | ||||
-rw-r--r-- | archaeological_warehouse/urls.py | 8 | ||||
-rw-r--r-- | archaeological_warehouse/views.py | 12 |
4 files changed, 45 insertions, 7 deletions
diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index ecf040a7e..5a558aa45 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -42,7 +42,8 @@ from bootstrap_datepicker.widgets import DatePicker from ishtar_common.forms import name_validator, reverse_lazy, \ get_form_selection, ManageOldType, FinalForm, FormSet, \ - CustomForm, FieldType, HistorySelect, FormHeader, TableSelect + CustomForm, FieldType, HistorySelect, FormHeader, TableSelect, \ + CustomFormSearch from ishtar_common.forms_common import get_town_field from archaeological_finds.forms import FindMultipleFormSelection, \ SelectFindBasketForm @@ -109,7 +110,7 @@ class WarehouseSelect(CustomForm, TableSelect): models.WarehouseType.get_help() -class WarehouseFormSelection(forms.Form): +class WarehouseFormSelection(CustomFormSearch): SEARCH_AND_SELECT = True form_label = _("Warehouse search") associated_models = {'pk': models.Warehouse} @@ -448,12 +449,15 @@ ContainerFormSelection = get_form_selection( 'ContainerFormSelection', _(u"Container search"), 'container', models.Container, ContainerSelect, 'get-container', _(u"You should select a container."), new=True, - new_message=_(u"Add a new container")) + new_message=_(u"Add a new container"), + base_form_select=CustomFormSearch +) MainContainerFormSelection = get_form_selection( 'ContainerFormSelection', _(u"Container search"), 'pk', models.Container, ContainerSelect, 'get-container', - _(u"You should select a container."), gallery=True, map=True + _(u"You should select a container."), gallery=True, map=True, + base_form_select = CustomFormSearch ) diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index a3cbf82e3..96257da3c 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -33,7 +33,7 @@ from ishtar_common.models import Document, GeneralType, get_external_id, \ LightHistorizedItem, OwnPerms, Address, Person, post_save_cache, \ DashboardFormItem, ShortMenuItem, Organization, OrganizationType, \ document_attached_changed, SearchAltName, DynamicRequest, GeoItem, \ - QRCodeItem, SearchVectorConfig, DocumentItem + QRCodeItem, SearchVectorConfig, DocumentItem, QuickAction, MainItem from ishtar_common.model_merging import merge_model_objects from ishtar_common.utils import cached_label_changed, \ cached_label_and_geo_changed @@ -51,7 +51,7 @@ post_delete.connect(post_save_cache, sender=WarehouseType) class Warehouse(Address, DocumentItem, GeoItem, QRCodeItem, DashboardFormItem, - OwnPerms, ShortMenuItem): + OwnPerms, MainItem): SLUG = 'warehouse' APP = "archaeological-warehouse" MODEL = "warehouse" @@ -86,6 +86,13 @@ class Warehouse(Address, DocumentItem, GeoItem, QRCodeItem, DashboardFormItem, DOWN_MODEL_UPDATE = ["containers"] CACHED_LABELS = [] + QA_LOCK = QuickAction( + url="warehouse-qa-lock", icon_class="fa fa-lock", + text=_(u"Lock/Unlock"), target="many", + rights=['change_warehouse', 'change_own_warehouse'] + ) + QUICK_ACTIONS = [QA_LOCK] + objects = ExternalIdManager() name = models.CharField(_(u"Name"), max_length=200) @@ -411,7 +418,7 @@ post_delete.connect(post_save_cache, sender=ContainerType) class Container(DocumentItem, LightHistorizedItem, QRCodeItem, GeoItem, - OwnPerms): + OwnPerms, MainItem): SLUG = 'container' APP = "archaeological-warehouse" MODEL = "container" @@ -578,6 +585,13 @@ class Container(DocumentItem, LightHistorizedItem, QRCodeItem, GeoItem, ), } + QA_LOCK = QuickAction( + url="container-qa-lock", icon_class="fa fa-lock", + text=_(u"Lock/Unlock"), target="many", + rights=['change_container', 'change_own_container'] + ) + QUICK_ACTIONS = [QA_LOCK] + objects = ExternalIdManager() # fields diff --git a/archaeological_warehouse/urls.py b/archaeological_warehouse/urls.py index 47058a352..ba1e3342c 100644 --- a/archaeological_warehouse/urls.py +++ b/archaeological_warehouse/urls.py @@ -68,6 +68,10 @@ urlpatterns = [ url(r'warehouse-modify/(?P<pk>.+)/$', views.warehouse_modify, name='warehouse_modify'), + url(r'^warehouse-qa-lock/(?P<pks>[0-9-]+)?/$', + views.QAWarehouseLockView.as_view(), name='warehouse-qa-lock', + kwargs={"model": models.Warehouse}), + url(r'^container-add-treatment/(?P<pk>[0-9-]+)/$', check_rights(['change_find', 'change_own_find'])( views.container_treatment_add), @@ -91,4 +95,8 @@ urlpatterns = [ name='container_deletion'), url(r'container-modify/(?P<pk>.+)/$', views.container_modify, name='container_modify'), + + url(r'^container-qa-lock/(?P<pks>[0-9-]+)?/$', + views.QAContainerLockView.as_view(), name='container-qa-lock', + kwargs={"model": models.Container}), ] diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py index ecbcc3175..67701f70b 100644 --- a/archaeological_warehouse/views.py +++ b/archaeological_warehouse/views.py @@ -34,6 +34,7 @@ from archaeological_warehouse.forms import WarehouseForm, ContainerForm, \ ContainerDeletionForm, ContainerSelect, WarehouseSelect from ishtar_common.forms import FinalForm +from ishtar_common.views import QABaseLockView from ishtar_common.views_item import get_item, show_item, new_item from archaeological_finds.views import treatment_add @@ -178,6 +179,12 @@ warehouse_deletion_wizard = WarehouseDeletionWizard.as_view([ label=_(u"Warehouse deletion"), url_name='warehouse_deletion',) + +class QAWarehouseLockView(QABaseLockView): + model = models.Warehouse + base_url = "warehouse-qa-lock" + + container_search_wizard = ContainerSearch.as_view([ ('selec-container_search', MainContainerFormSelection)], label=_(u"Container search"), @@ -252,6 +259,11 @@ warehouse_packaging_wizard = ItemSourceWizard.as_view([ """ +class QAContainerLockView(QABaseLockView): + model = models.Container + base_url = "container-qa-lock" + + def reset_wizards(request): for wizard_class, url_name in ( (PackagingWizard, 'warehouse_packaging'), |