Exemplo n.º 1
0
def save_assessor_data(instance,request,viewset):
    with transaction.atomic():
        try:
            lookable_fields = ['isTitleColumnForDashboard','isActivityColumnForDashboard','isRegionColumnForDashboard']
            extracted_fields,special_fields,assessor_data,comment_data = create_data_from_form(
                instance.schema, request.POST, request.FILES,special_fields=lookable_fields,assessor_data=True)
            data = {
                'data': extracted_fields,
                'assessor_data': assessor_data,
                'comment_data': comment_data,
            }
            serializer = SaveProposalSerializer(instance, data, partial=True)
            serializer.is_valid(raise_exception=True)
            viewset.perform_update(serializer)
            # Save Documents
            for f in request.FILES:
                try:
                    #document = instance.documents.get(name=str(request.FILES[f]))
                    document = instance.documents.get(input_name=f)
                except ProposalDocument.DoesNotExist:
                    document = instance.documents.get_or_create(input_name=f)[0]
                document.name = str(request.FILES[f])
                if document._file and os.path.isfile(document._file.path):
                    os.remove(document._file.path)
                document._file = request.FILES[f]
                document.save()
            # End Save Documents
        except:
            raise
Exemplo n.º 2
0
 def update(self, request, *args, **kwargs):
     try:
         http_status = status.HTTP_200_OK
         instance = self.get_object()
         serializer = SaveProposalSerializer(instance, data=request.data)
         serializer.is_valid(raise_exception=True)
         self.perform_update(serializer)
         return Response(serializer.data)
     except Exception as e:
         print(traceback.print_exc())
         raise serializers.ValidationError(str(e))
Exemplo n.º 3
0
 def destroy(self, request, *args, **kwargs):
     try:
         http_status = status.HTTP_200_OK
         instance = self.get_object()
         serializer = SaveProposalSerializer(
             instance, {'processing_status': 'discarded'}, partial=True)
         serializer.is_valid(raise_exception=True)
         self.perform_update(serializer)
         return Response(serializer.data, status=http_status)
     except Exception as e:
         print(traceback.print_exc())
         raise serializers.ValidationError(str(e))
Exemplo n.º 4
0
def save_proponent_data(instance, request, viewset):
    with transaction.atomic():
        try:
            lookable_fields = [
                'isTitleColumnForDashboard', 'isActivityColumnForDashboard',
                'isRegionColumnForDashboard'
            ]
            extracted_fields, special_fields = create_data_from_form(
                instance.schema,
                request.POST,
                request.FILES,
                special_fields=lookable_fields)
            instance.data = extracted_fields
            data = {
                'region':
                special_fields.get('isRegionColumnForDashboard', None),
                'title':
                special_fields.get('isTitleColumnForDashboard', None),
                'activity':
                special_fields.get('isActivityColumnForDashboard', None),
                'data':
                extracted_fields,
                'processing_status':
                instance.PROCESSING_STATUS_CHOICES[1][0]
                if instance.processing_status == 'temp' else
                instance.processing_status,
                'customer_status':
                instance.PROCESSING_STATUS_CHOICES[1][0]
                if instance.processing_status == 'temp' else
                instance.customer_status,
                # 'lodgement_sequence': 1 if instance.lodgement_sequence == 0 else instance.lodgement_sequence,
            }
            serializer = SaveProposalSerializer(instance, data, partial=True)
            serializer.is_valid(raise_exception=True)
            viewset.perform_update(serializer)
            # Save Documents
            for f in request.FILES:
                try:
                    #document = instance.documents.get(name=str(request.FILES[f]))
                    document = instance.documents.get(input_name=f)
                except ProposalDocument.DoesNotExist:
                    document = instance.documents.get_or_create(
                        input_name=f)[0]
                document.name = str(request.FILES[f])
                if document._file and os.path.isfile(document._file.path):
                    os.remove(document._file.path)
                document._file = request.FILES[f]
                document.save()
            # End Save Documents
        except:
            raise
Exemplo n.º 5
0
def save_proponent_data(instance,request,viewset):
    with transaction.atomic():
        try:
            lookable_fields = ['isTitleColumnForDashboard','isActivityColumnForDashboard','isRegionColumnForDashboard']
            extracted_fields,special_fields = create_data_from_form(instance.schema, request.POST, request.FILES, special_fields=lookable_fields)
            instance.data = extracted_fields
            #import ipdb; ipdb.set_trace()
            data = {
                #'region': special_fields.get('isRegionColumnForDashboard',None),
                'title': special_fields.get('isTitleColumnForDashboard',None),
                'activity': special_fields.get('isActivityColumnForDashboard',None),

                'data': extracted_fields,
                'processing_status': instance.PROCESSING_STATUS_CHOICES[1][0] if instance.processing_status == 'temp' else instance.processing_status,
                'customer_status': instance.PROCESSING_STATUS_CHOICES[1][0] if instance.processing_status == 'temp' else instance.customer_status,
               # 'lodgement_sequence': 1 if instance.lodgement_sequence == 0 else instance.lodgement_sequence,

            }
            serializer = SaveProposalSerializer(instance, data, partial=True)
            serializer.is_valid(raise_exception=True)
            viewset.perform_update(serializer)
            # Save Documents
#            for f in request.FILES:
#                try:
#                    #document = instance.documents.get(name=str(request.FILES[f]))
#                    document = instance.documents.get(input_name=f)
#                except ProposalDocument.DoesNotExist:
#                    document = instance.documents.get_or_create(input_name=f)[0]
#                document.name = str(request.FILES[f])
#                if document._file and os.path.isfile(document._file.path):
#                    os.remove(document._file.path)
#                document._file = request.FILES[f]
#                document.save()

#            for f in request.FILES:
#                #import ipdb; ipdb; ipdb.set_trace()
#                try:
#					document = instance.documents.get(input_name=f, name=request.FILES[f].name)
#                except ProposalDocument.DoesNotExist:
#					document = instance.documents.get_or_create(input_name=f, name=request.FILES[f].name)[0]
#                document._file = request.FILES[f]
#                document.save()

            # End Save Documents
        except:
            raise
Exemplo n.º 6
0
def save_assessor_data(instance, request, viewset):
    with transaction.atomic():
        try:
            lookable_fields = [
                'isTitleColumnForDashboard', 'isActivityColumnForDashboard',
                'isRegionColumnForDashboard'
            ]
            extracted_fields, special_fields, assessor_data, comment_data = create_data_from_form(
                instance.schema,
                request.POST,
                request.FILES,
                special_fields=lookable_fields,
                assessor_data=True)

            logger.info("ASSESSOR DATA - Region: {}, Activity: {}".format(
                special_fields.get('isRegionColumnForDashboard', None),
                special_fields.get('isActivityColumnForDashboard', None)))

            data = {
                'data': extracted_fields,
                'assessor_data': assessor_data,
                'comment_data': comment_data,
            }
            serializer = SaveProposalSerializer(instance, data, partial=True)
            serializer.is_valid(raise_exception=True)
            viewset.perform_update(serializer)
            # Save Documents
            for f in request.FILES:
                try:
                    #document = instance.documents.get(name=str(request.FILES[f]))
                    document = instance.documents.get(input_name=f)
                except ProposalDocument.DoesNotExist:
                    document = instance.documents.get_or_create(
                        input_name=f)[0]
                document.name = str(request.FILES[f])
                if document._file and os.path.isfile(document._file.path):
                    os.remove(document._file.path)
                document._file = request.FILES[f]
                document.save()
            # End Save Documents
            instance.log_user_action(
                ProposalUserAction.ACTION_SAVE_APPLICATION.format(instance.id),
                request)
        except:
            raise
Exemplo n.º 7
0
 def create(self, request, *args, **kwargs):
     try:
         http_status = status.HTTP_200_OK
         data = {
             'schema': ProposalType.objects.first().schema,
             'submitter': request.user.id,
             'applicant': request.data.get('behalf_of')
         }
         serializer = SaveProposalSerializer(data=data)
         serializer.is_valid(raise_exception=True)
         serializer.save()
         return Response(serializer.data)
     except Exception as e:
         print(traceback.print_exc())
         raise serializers.ValidationError(str(e))
Exemplo n.º 8
0
def save_proponent_data(instance, request, viewset):
    with transaction.atomic():
        try:
            lookable_fields = [
                'isTitleColumnForDashboard', 'isActivityColumnForDashboard',
                'isRegionColumnForDashboard'
            ]

            extracted_fields, special_fields = create_data_from_form(
                instance.schema,
                request.POST,
                request.FILES,
                special_fields=lookable_fields)
            instance.data = extracted_fields
            #import ipdb; ipdb.set_trace()

            form_data = json.loads(request.POST['schema'])
            sub_activity_level1 = form_data.get('sub_activity_level1')
            print(sub_activity_level1)

            logger.info("Region: {}, Activity: {}".format(
                special_fields.get('isRegionColumnForDashboard', None),
                special_fields.get('isActivityColumnForDashboard', None)))

            data1 = {
                #'region': special_fields.get('isRegionColumnForDashboard',None),
                'title':
                special_fields.get('isTitleColumnForDashboard', None),
                'activity':
                special_fields.get('isActivityColumnForDashboard', None),
                'data':
                extracted_fields,
                'processing_status':
                instance.PROCESSING_STATUS_CHOICES[1][0]
                if instance.processing_status == 'temp' else
                instance.processing_status,
                'customer_status':
                instance.PROCESSING_STATUS_CHOICES[1][0]
                if instance.processing_status == 'temp' else
                instance.customer_status,
                # 'lodgement_sequence': 1 if instance.lodgement_sequence == 0 else instance.lodgement_sequence,
            }
            data = {
                #'region': special_fields.get('isRegionColumnForDashboard',None),
                'title':
                special_fields.get('isTitleColumnForDashboard', None),
                'data':
                extracted_fields,
                'processing_status':
                instance.PROCESSING_STATUS_CHOICES[1][0]
                if instance.processing_status == 'temp' else
                instance.processing_status,
                'customer_status':
                instance.PROCESSING_STATUS_CHOICES[1][0]
                if instance.processing_status == 'temp' else
                instance.customer_status,
                # 'lodgement_sequence': 1 if instance.lodgement_sequence == 0 else instance.lodgement_sequence,
                'activity':
                form_data.get('activity', None),
                'region':
                form_data.get('region', None),
                'district':
                form_data.get('district', None),
                'sub_activity_level1':
                form_data.get('sub_activity_level1', None),
                'sub_activity_level2':
                form_data.get('sub_activity_level2', None),
                'management_area':
                form_data.get('management_area', None),
                'approval_level':
                form_data.get('approval_level', None),
            }

            serializer = SaveProposalSerializer(instance, data, partial=True)
            serializer.is_valid(raise_exception=True)
            viewset.perform_update(serializer)
            instance.log_user_action(
                ProposalUserAction.ACTION_SAVE_APPLICATION.format(instance.id),
                request)

            # Save Documents


#            for f in request.FILES:
#                try:
#                    #document = instance.documents.get(name=str(request.FILES[f]))
#                    document = instance.documents.get(input_name=f)
#                except ProposalDocument.DoesNotExist:
#                    document = instance.documents.get_or_create(input_name=f)[0]
#                document.name = str(request.FILES[f])
#                if document._file and os.path.isfile(document._file.path):
#                    os.remove(document._file.path)
#                document._file = request.FILES[f]
#                document.save()

#            for f in request.FILES:
#                #import ipdb; ipdb; ipdb.set_trace()
#                try:
#					document = instance.documents.get(input_name=f, name=request.FILES[f].name)
#                except ProposalDocument.DoesNotExist:
#					document = instance.documents.get_or_create(input_name=f, name=request.FILES[f].name)[0]
#                document._file = request.FILES[f]
#                document.save()

# End Save Documents
        except:
            raise