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 | |
| parent | daa8d5562ffcab11df290bf7101b2e3fe266b674 (diff) | |
| download | Ishtar-235723102fdb7c5b74d42278b8d934b7e2830f1a.tar.bz2 Ishtar-235723102fdb7c5b74d42278b8d934b7e2830f1a.zip  | |
QA person: bulk modification
| -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 + +  | 
