diff options
Diffstat (limited to 'archaeological_operations/views.py')
| -rw-r--r-- | archaeological_operations/views.py | 277 | 
1 files changed, 147 insertions, 130 deletions
| diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 5e7288caa..34473c7b1 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -38,9 +38,9 @@ import models  def autocomplete_patriarche(request, non_closed=True):      if (not request.user.has_perm('ishtar_common.view_operation',                                    models.Operation) -        and not request.user.has_perm('ishtar_common.view_own_operation', -                                      models.Operation) -        and not request.user.ishtaruser.has_right('operation_search')): +            and not request.user.has_perm('ishtar_common.view_own_operation', +                                          models.Operation) +            and not request.user.ishtaruser.has_right('operation_search')):          return HttpResponse(mimetype='text/plain')      if not request.GET.get('term'):          return HttpResponse(mimetype='text/plain') @@ -51,21 +51,21 @@ def autocomplete_patriarche(request, non_closed=True):      if non_closed:          query = query & Q(end_date__isnull=True)      limit = 15 -    operations = models.Operation.objects.filter(query -                                ).order_by('code_patriarche')[:limit] -    data = json.dumps([{'id':operation.code_patriarche, -                        'value':operation.code_patriarche} -                         for operation in operations]) +    operations = models.Operation.objects\ +        .filter(query).order_by('code_patriarche')[:limit] +    data = json.dumps([{'id': operation.code_patriarche, +                        'value': operation.code_patriarche} +                       for operation in operations])      return HttpResponse(data, mimetype='text/plain')  def autocomplete_archaeologicalsite(request):      if (not request.user.has_perm( -                      'archaeological_operations.view_archaeologicalsite', -                      models.ArchaeologicalSite) +            'archaeological_operations.view_archaeologicalsite', +            models.ArchaeologicalSite)          and not request.user.has_perm( -                      'archaeological_operations.view_own_archaeologicalsite', -                      models.ArchaeologicalSite)): +            'archaeological_operations.view_own_archaeologicalsite', +            models.ArchaeologicalSite)):          return HttpResponse(mimetype='text/plain')      if not request.GET.get('term'):          return HttpResponse(mimetype='text/plain') @@ -75,23 +75,24 @@ def autocomplete_archaeologicalsite(request):          qt = Q(reference__icontains=q) | Q(name__icontains=q)          query = query & qt      limit = 15 -    sites = models.ArchaeologicalSite.objects.filter(query -                                        ).order_by('reference')[:limit] -    data = json.dumps([{'id':site.pk, -                        'value':unicode(site)[:60]} -                         for site in sites]) +    sites = models.ArchaeologicalSite.objects\ +        .filter(query).order_by('reference')[:limit] +    data = json.dumps([{'id': site.pk, +                        'value': unicode(site)[:60]} +                       for site in sites])      return HttpResponse(data, mimetype='text/plain')  new_archaeologicalsite = new_item(models.ArchaeologicalSite,                                    ArchaeologicalSiteForm) +  def autocomplete_operation(request, non_closed=True): -    person_types = request.user.ishtaruser.person.person_type +    # person_types = request.user.ishtaruser.person.person_type      if (not request.user.has_perm('ishtar_common.view_operation',                                    models.Operation)          and not request.user.has_perm('ishtar_common.view_own_operation',                                        models.Operation) -        and not request.user.ishtaruser.has_right('operation_search')): +            and not request.user.ishtaruser.has_right('operation_search')):          return HttpResponse(mimetype='text/plain')      if not request.GET.get('term'):          return HttpResponse(mimetype='text/plain') @@ -100,7 +101,7 @@ def autocomplete_operation(request, non_closed=True):      for q in q.split(' '):          extra = Q(towns__name__icontains=q)          try: -            value = int(q) +            int(q)              extra = extra | Q(year=q) | Q(operation_code=q)          except ValueError:              pass @@ -109,76 +110,85 @@ def autocomplete_operation(request, non_closed=True):          query = query & Q(end_date__isnull=True)      limit = 15      operations = models.Operation.objects.filter(query)[:limit] -    data = json.dumps([{'id':operation.pk, 'value':unicode(operation)} -                                          for operation in operations]) +    data = json.dumps([{'id': operation.pk, 'value': unicode(operation)} +                       for operation in operations])      return HttpResponse(data, mimetype='text/plain') +  def get_available_operation_code(request, year=None):      if not request.user.has_perm('ishtar_common.view_operation',                                   models.Operation)\         and not request.user.has_perm('ishtar_common.view_own_operation',                                       models.Operation):          return HttpResponse(mimetype='text/plain') -    data = json.dumps({'id':models.Operation.get_available_operation_code(year)}) +    data = json.dumps({'id': +                       models.Operation.get_available_operation_code(year)})      return HttpResponse(data, mimetype='text/plain') -get_operation = get_item(models.Operation, 'get_operation', 'operation', -    bool_fields = ['end_date__isnull'], -    dated_fields = ['start_date__lte', 'start_date__gte', -                    'excavation_end_date__lte', 'excavation_end_date__gte'], -    extra_request_keys={'common_name':'common_name__icontains', -                        'end_date':'end_date__isnull', -                        'year_index':('year', 'operation_code'), -                        'start_before':'start_date__lte', -                        'start_after':'start_date__gte', -                        'end_before':'excavation_end_date__lte', -                        'end_after':'excavation_end_date__gte', -                        'parcel_0':('parcels__section', -                                    'associated_file__parcels__section'), -                        'parcel_1':('parcels__parcel_number', -                                    'associated_file__parcels__parcel_number'), -                        'history_creator':\ -                                     'history_creator__ishtaruser__person__pk', +get_operation = get_item( +    models.Operation, 'get_operation', 'operation', +    bool_fields=['end_date__isnull'], +    dated_fields=['start_date__lte', 'start_date__gte', +                  'excavation_end_date__lte', 'excavation_end_date__gte'], +    extra_request_keys={'common_name': 'common_name__icontains', +                        'end_date': 'end_date__isnull', +                        'year_index': ('year', 'operation_code'), +                        'start_before': 'start_date__lte', +                        'start_after': 'start_date__gte', +                        'end_before': 'excavation_end_date__lte', +                        'end_after': 'excavation_end_date__gte', +                        'parcel_0': ('parcels__section', +                                     'associated_file__parcels__section'), +                        'parcel_1': ( +                            'parcels__parcel_number', +                            'associated_file__parcels__parcel_number'), +                        'history_creator': +                        'history_creator__ishtaruser__person__pk',                          }, -    ) +)  show_operation = show_item(models.Operation, 'operation')  revert_operation = revert_item(models.Operation) -get_operationsource = get_item(models.OperationSource, +get_operationsource = get_item( +    models.OperationSource,      'get_operationsource', 'operationsource', -    extra_request_keys={'operation__towns':'operation__towns__pk', -                  'operation__operation_type':'operation__operation_type__pk', -                  'operation__year':'operation__year'}) +    extra_request_keys={ +        'operation__towns': 'operation__towns__pk', +        'operation__operation_type': 'operation__operation_type__pk', +        'operation__year': 'operation__year'}) -get_administrativeactop = get_item(models.AdministrativeAct, +get_administrativeactop = get_item( +    models.AdministrativeAct,      'get_administrativeactop', 'administrativeactop', -    extra_request_keys={'associated_file__towns':'associated_file__towns__pk', -                        'operation__towns':'operation__towns__pk', -                        'act_type__intented_to':'act_type__intented_to', -                        'year':'signature_date__year', -                        'history_creator':\ -                                     'history_creator__ishtaruser__person__pk', +    extra_request_keys={'associated_file__towns': 'associated_file__towns__pk', +                        'operation__towns': 'operation__towns__pk', +                        'act_type__intented_to': 'act_type__intented_to', +                        'year': 'signature_date__year', +                        'history_creator': +                        'history_creator__ishtaruser__person__pk',                          }, -    relative_session_names={'operation':'operation__pk'}) +    relative_session_names={'operation': 'operation__pk'}) -get_administrativeact = get_item(models.AdministrativeAct, +get_administrativeact = get_item( +    models.AdministrativeAct,      'get_administrativeact', 'administrativeact', -    extra_request_keys={'year':'signature_date__year', -                        'indexed':'index__isnull', -                        'history_creator':\ -                                     'history_creator__ishtaruser__person__pk', -                        'operation__towns':'operation__towns__pk'}, -    reversed_bool_fields = ['index__isnull'],) +    extra_request_keys={'year': 'signature_date__year', +                        'indexed': 'index__isnull', +                        'history_creator': +                        'history_creator__ishtaruser__person__pk', +                        'operation__towns': 'operation__towns__pk'}, +    reversed_bool_fields=['index__isnull'],)  show_administrativeact = show_item(models.AdministrativeAct,                                     'administrativeact') +  def dashboard_operation(request, *args, **kwargs):      """      Operation dashboard      """      dct = {'dashboard': models.OperationDashboard()} -    return render_to_response('ishtar/dashboards/dashboard_operation.html', dct, -                              context_instance=RequestContext(request)) +    return render_to_response('ishtar/dashboards/dashboard_operation.html', +                              dct, context_instance=RequestContext(request))  operation_search_wizard = SearchWizard.as_view([      ('general-operation_search', OperationFormSelection)], @@ -200,22 +210,23 @@ if FILES_AVAILABLE:      wizard_steps.insert(0, ('filechoice-operation_creation',                              OperationFormFileChoice)) -operation_creation_wizard = OperationWizard.as_view(wizard_steps, +operation_creation_wizard = OperationWizard.as_view( +    wizard_steps,      label=_(u"New operation"),      condition_dict={ -        'preventive-operation_creation':\ -            is_preventive('general-operation_creation', models.OperationType, -            'operation_type', 'prev_excavation'), -        'preventivediag-operation_creation':\ -            is_preventive('general-operation_creation', models.OperationType, -            'operation_type', 'arch_diagnostic'), -        'townsgeneral-operation_creation':has_associated_file( +        'preventive-operation_creation': +        is_preventive('general-operation_creation', models.OperationType, +                      'operation_type', 'prev_excavation'), +        'preventivediag-operation_creation': +        is_preventive('general-operation_creation', models.OperationType, +                      'operation_type', 'arch_diagnostic'), +        'townsgeneral-operation_creation': has_associated_file(              'filechoice-operation_creation', negate=True), -        'towns-operation_creation':has_associated_file( +        'towns-operation_creation': has_associated_file(              'filechoice-operation_creation'), -        'parcelsgeneral-operation_creation':has_associated_file( +        'parcelsgeneral-operation_creation': has_associated_file(              'filechoice-operation_creation', negate=True), -        'parcels-operation_creation':has_associated_file( +        'parcels-operation_creation': has_associated_file(              'filechoice-operation_creation'),      },      url_name='operation_creation',) @@ -234,37 +245,39 @@ operation_modification_wizard = OperationModificationWizard.as_view([      ('final-operation_modification', FinalForm)],      label=_(u"Operation modification"),      condition_dict={ -        'preventive-operation_modification':is_preventive( +        'preventive-operation_modification': is_preventive(              'general-operation_modification', models.OperationType,              'operation_type', 'prev_excavation'), -        'preventivediag-operation_modification':is_preventive( +        'preventivediag-operation_modification': is_preventive(              'general-operation_modification', models.OperationType,              'operation_type', 'arch_diagnostic'), -        'townsgeneral-operation_modification':has_associated_file( +        'townsgeneral-operation_modification': has_associated_file(              'general-operation_modification', negate=True), -        'towns-operation_modification':has_associated_file( +        'towns-operation_modification': has_associated_file(              'general-operation_modification'), -        'parcelsgeneral-operation_modification':has_associated_file( +        'parcelsgeneral-operation_modification': has_associated_file(              'general-operation_modification', negate=True), -        'parcels-operation_modification':has_associated_file( +        'parcels-operation_modification': has_associated_file(              'general-operation_modification'), -         }, +},      url_name='operation_modification',) +  def operation_modify(request, pk): -    view = operation_modification_wizard(request) -    OperationModificationWizard.session_set_value(request, -                        'selec-operation_modification', 'pk', pk, reset=True) +    operation_modification_wizard(request) +    OperationModificationWizard.session_set_value( +        request, 'selec-operation_modification', 'pk', pk, reset=True)      return redirect(reverse('operation_modification', -                            kwargs={'step':'general-operation_modification'})) +                            kwargs={'step': 'general-operation_modification'})) +  def operation_add(request, file_id): -    view = operation_creation_wizard(request) +    operation_creation_wizard(request)      OperationWizard.session_set_value( -                    request, 'filechoice-operation_creation', 'associated_file', -                    file_id, reset=True) +        request, 'filechoice-operation_creation', 'associated_file', +        file_id, reset=True)      return redirect(reverse('operation_creation', -                            kwargs={'step':'general-operation_creation'})) +                            kwargs={'step': 'general-operation_creation'}))  operation_closing_wizard = OperationClosingWizard.as_view([      ('selec-operation_closing', OperationFormSelection), @@ -286,7 +299,7 @@ operation_source_search_wizard = SearchWizard.as_view([  operation_source_creation_wizard = OperationSourceWizard.as_view([      ('selec-operation_source_creation', SourceOperationFormSelection), -    ('source-operation_source_creation',OperationSourceForm), +    ('source-operation_source_creation', OperationSourceForm),      ('authors-operation_source_creation', AuthorFormset),      ('final-operation_source_creation', FinalForm)],      label=_(u"Operation: source creation"), @@ -308,44 +321,45 @@ operation_source_deletion_wizard = OperationSourceDeletionWizard.as_view([  operation_administrativeactop_search_wizard = SearchWizard.as_view([      ('general-operation_administrativeactop_search', -    AdministrativeActOpeFormSelection)], +     AdministrativeActOpeFormSelection)],      label=_(u"Administrative act search"),      url_name='operation_administrativeactop_search',)  operation_administrativeactop_wizard = \ -                                OperationAdministrativeActWizard.as_view([ -    ('selec-operation_administrativeactop', OperationFormSelection), -    ('administrativeact-operation_administrativeactop', -     AdministrativeActOpeForm), -    ('final-operation_administrativeactop', FinalForm)], -    label=_(u"Operation: new administrative act"), -    url_name='operation_administrativeactop',) +    OperationAdministrativeActWizard.as_view([ +        ('selec-operation_administrativeactop', OperationFormSelection), +        ('administrativeact-operation_administrativeactop', +         AdministrativeActOpeForm), +        ('final-operation_administrativeactop', FinalForm)], +        label=_(u"Operation: new administrative act"), +        url_name='operation_administrativeactop',)  operation_administrativeactop_modification_wizard = \ -                                OperationEditAdministrativeActWizard.as_view([ -    ('selec-operation_administrativeactop_modification', -     AdministrativeActOpeFormSelection), -    ('administrativeact-operation_administrativeactop_modification', -     AdministrativeActOpeForm), -    ('final-operation_administrativeactop_modification', FinalForm)], -    label=_(u"Operation: administrative act modification"), -    url_name='operation_administrativeactop_modification',) +    OperationEditAdministrativeActWizard.as_view([ +        ('selec-operation_administrativeactop_modification', +         AdministrativeActOpeFormSelection), +        ('administrativeact-operation_administrativeactop_modification', +         AdministrativeActOpeForm), +        ('final-operation_administrativeactop_modification', FinalForm)], +        label=_(u"Operation: administrative act modification"), +        url_name='operation_administrativeactop_modification',)  operation_administrativeactop_deletion_wizard = \ -                                AdministrativeActDeletionWizard.as_view([ -    ('selec-operation_administrativeactop_deletion', -     AdministrativeActOpeFormSelection), -    ('final-operation_administrativeactop_deletion', -     FinalAdministrativeActDeleteForm)], -    label=_(u"Operation: administrative act deletion"), -    url_name='operation_administrativeactop_deletion',) +    AdministrativeActDeletionWizard.as_view([ +        ('selec-operation_administrativeactop_deletion', +         AdministrativeActOpeFormSelection), +        ('final-operation_administrativeactop_deletion', +         FinalAdministrativeActDeleteForm)], +        label=_(u"Operation: administrative act deletion"), +        url_name='operation_administrativeactop_deletion',)  administrativact_register_wizard = SearchWizard.as_view([      ('general-administrativact_register', -                AdministrativeActRegisterFormSelection)], -    label=pgettext_lazy('admin act register',u"Register"), +     AdministrativeActRegisterFormSelection)], +    label=pgettext_lazy('admin act register', u"Register"),      url_name='administrativact_register',) +  def generatedoc_administrativeactop(request, pk, template_pk=None):      if (not request.user.has_perm('ishtar_common.view_operation',                                    models.Operation) @@ -358,8 +372,8 @@ def generatedoc_administrativeactop(request, pk, template_pk=None):      except models.AdministrativeAct.DoesNotExist:          doc = None      if doc: -        MIMES = {'odt':'application/vnd.oasis.opendocument.text', -                 'ods':'application/vnd.oasis.opendocument.spreadsheet'} +        MIMES = {'odt': 'application/vnd.oasis.opendocument.text', +                 'ods': 'application/vnd.oasis.opendocument.spreadsheet'}          ext = doc.split('.')[-1]          doc_name = act_file.get_filename() + "." + ext          mimetype = 'text/csv' @@ -367,43 +381,46 @@ def generatedoc_administrativeactop(request, pk, template_pk=None):              mimetype = MIMES[ext]          response = HttpResponse(open(doc), mimetype=mimetype)          response['Content-Disposition'] = 'attachment; filename=%s' % \ -                                                                doc_name +            doc_name          return response      return HttpResponse(mimetype='text/plain') +  def administrativeactfile_document(request, operation=True):      search_form = AdministrativeActOpeFormSelection      if not operation: -        from archaeological_files.forms import AdministrativeActFileFormSelection +        from archaeological_files.forms import \ +            AdministrativeActFileFormSelection          search_form = AdministrativeActFileFormSelection      dct = {}      if request.POST:          dct['search_form'] = search_form(request.POST)          dct['template_form'] = DocumentGenerationAdminActForm( -                                                        operation=operation) +            operation=operation)          c_object = None          try:              if dct['search_form'].is_valid():                  c_object = \ -                   DocumentGenerationAdminActForm._associated_model.objects.get( -                            pk=dct['search_form'].cleaned_data.get('pk')) +                    DocumentGenerationAdminActForm._associated_model\ +                    .objects.get(pk=dct['search_form'].cleaned_data.get('pk'))          except DocumentGenerationAdminActForm._associated_model.DoesNotExist:              pass          if c_object: -            dct['template_form'] = DocumentGenerationAdminActForm(request.POST, -                                operation=operation, -                                obj=c_object) +            dct['template_form'] = DocumentGenerationAdminActForm( +                request.POST, operation=operation, obj=c_object)              if dct['template_form'].is_valid(): -                return generatedoc_administrativeactop(request, +                return generatedoc_administrativeactop( +                    request,                      dct['search_form'].cleaned_data.get('pk'),                      dct['template_form'].cleaned_data.get('document_template'))      else:          dct['search_form'] = search_form()          dct['template_form'] = DocumentGenerationAdminActForm( -                                                        operation=operation) +            operation=operation)      return render_to_response('ishtar/administrativeact_document.html', dct,                                context_instance=RequestContext(request)) +  def reset_wizards(request):      for wizard_class, url_name in (              (OperationWizard, 'operation_creation'), @@ -413,10 +430,10 @@ def reset_wizards(request):              (OperationSourceWizard, 'operation_source_creation'),              (OperationSourceWizard, 'operation_source_modification'),              (OperationSourceDeletionWizard, 'operation_source_deletion'), -            (OperationAdministrativeActWizard, 'operation_administrativeactop'), +            (OperationAdministrativeActWizard, +             'operation_administrativeactop'),              (OperationEditAdministrativeActWizard, -                        'operation_administrativeactop_modification'), +             'operation_administrativeactop_modification'),              (AdministrativeActDeletionWizard, -                        'operation_administrativeactop_deletion'), -        ): +             'operation_administrativeactop_deletion'),):          wizard_class.session_reset(request, url_name) | 
