diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-06-04 17:52:17 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-06-04 17:52:17 +0200 |
commit | 235723102fdb7c5b74d42278b8d934b7e2830f1a (patch) | |
tree | cf5da383b3ed46de875ee25ec625b0218c2da35a /ishtar_common | |
parent | daa8d5562ffcab11df290bf7101b2e3fe266b674 (diff) | |
download | Ishtar-235723102fdb7c5b74d42278b8d934b7e2830f1a.tar.bz2 Ishtar-235723102fdb7c5b74d42278b8d934b7e2830f1a.zip |
QA person: bulk modification
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/forms_common.py | 27 | ||||
-rw-r--r-- | ishtar_common/models.py | 10 | ||||
-rw-r--r-- | ishtar_common/urls.py | 10 | ||||
-rw-r--r-- | ishtar_common/views.py | 5 |
4 files changed, 48 insertions, 4 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index b91f55ace..df103e541 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -44,7 +44,7 @@ from ishtar_common.templatetags.link_to_window import simple_link_to_window from forms import FinalForm, FormSet, reverse_lazy, name_validator, \ TableSelect, ManageOldType, CustomForm, FieldType, FormHeader, \ FormSetWithDeleteSwitches, BSForm, get_data_from_formset, \ - file_size_validator, HistorySelect + file_size_validator, HistorySelect, CustomFormSearch, QAForm from ishtar_common.utils import is_downloadable, clean_session_cache, \ max_size_help @@ -469,7 +469,7 @@ class BaseOrganizationForm(forms.ModelForm): 'town', 'postal_code'] -class PersonSelect(TableSelect): +class PersonSelect(CustomForm, TableSelect): _model = models.Person search_vector = forms.CharField( @@ -492,7 +492,7 @@ class PersonSelect(TableSelect): self.fields['person_types'].choices = models.PersonType.get_types() -class PersonFormSelection(forms.Form): +class PersonFormSelection(CustomFormSearch): SEARCH_AND_SELECT = True form_label = _(u"Person search") associated_models = {'pk': models.Person} @@ -505,6 +505,27 @@ class PersonFormSelection(forms.Form): validators=[models.valid_id(models.Person)]) +class QAPersonFormMulti(QAForm): + form_admin_name = _(u"Person - Quick action - Modify") + form_slug = "person-quickaction-modify" + base_models = ['qa_title_type'] + associated_models = { + 'qa_title': models.TitleType, + } + + MULTI = True + REPLACE_FIELDS = [ + 'qa_title', + ] + qa_title = forms.ChoiceField( + label=_(u"Title"), required=False + ) + + TYPES = [ + FieldType('qa_title', models.TitleType), + ] + + class PersonMergeFormSelection(ManualMerge, forms.Form): SEARCH_AND_SELECT = True form_label = _("Person to merge") diff --git a/ishtar_common/models.py b/ishtar_common/models.py index d95986c70..2e618749b 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -3625,7 +3625,7 @@ class PersonManager(models.Manager): return self.get(**q) -class Person(Address, Merge, OwnPerms, ValueGetter): +class Person(Address, Merge, OwnPerms, ValueGetter, MainItem): SLUG = "person" _prefix = 'person_' TYPE = ( @@ -3686,6 +3686,14 @@ class Person(Address, Merge, OwnPerms, ValueGetter): 'ishtaruser__isnull' ), } + QA_EDIT = QuickAction( + url="person-qa-bulk-update", icon_class="fa fa-pencil", + text=_(u"Bulk update"), target="many", + rights=['change_person']) + QUICK_ACTIONS = [ + QA_EDIT + ] + objects = PersonManager() diff --git a/ishtar_common/urls.py b/ishtar_common/urls.py index 957b1bfb3..26dfcdc07 100644 --- a/ishtar_common/urls.py +++ b/ishtar_common/urls.py @@ -62,6 +62,16 @@ urlpatterns = [ url(r'^person-edit/(?P<pk>\d+)$', check_rights(['change_person', 'change_own_person'])( views.PersonEdit.as_view()), name='person_edit'), + + url(r'^person-qa-bulk-update/(?P<pks>[0-9-]+)?/$', + check_rights(['change_person', 'change_own_person'])( + views.QAPersonForm.as_view()), + name='person-qa-bulk-update'), + url(r'^person-qa-bulk-update/(?P<pks>[0-9-]+)?/confirm/$', + check_rights(['change_person', 'change_own_person'])( + views.QAPersonForm.as_view()), + name='person-qa-bulk-update-confirm', kwargs={"confirm": True}), + url(r'organization_search/(?P<step>.+)?$', check_rights(['add_organization'])( views.organization_search_wizard), name='organization_search'), diff --git a/ishtar_common/views.py b/ishtar_common/views.py index ee01e6909..0ebdc411f 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -2083,3 +2083,8 @@ class QAItemEditForm(QAItemForm): return HttpResponseRedirect(reverse("success")) +class QAPersonForm(QAItemEditForm): + model = models.Person + form_class = forms.QAPersonFormMulti + + |