def update(self, instance, validated_data):
        displayfields_data = validated_data.pop('displayfield_set')
        filterfields_data = validated_data.pop('filterfield_set')

        with transaction.atomic():
            instance.name = validated_data.get('name', instance.name)
            instance.description = validated_data.get('description', instance.description)
            instance.distinct = validated_data.get(
                'distinct', instance.distinct)
            instance.modified = datetime.date.today()
            instance.save()

            for displayfield_data in instance.displayfield_set.all():
                 if displayfield_data.aggregate == "Filter":
                    displayfield_data.filter_field.delete()

            instance.displayfield_set.all().delete()

            for displayfield_data in displayfields_data:
                display_field = DisplayField()
                for key, value in displayfield_data.items():
                    setattr(display_field, key, value)

                display_field.save()
            instance.filterfield_set.all().delete()

            for filterfield_data in filterfields_data:
                filter_field = FilterField()
                for key, value in filterfield_data.items():
                    setattr(filter_field, key, value)
                filter_field.save()

        return instance
Esempio n. 2
0
    def update(self, instance, validated_data):
        displayfields_data = validated_data.pop('displayfield_set')
        filterfields_data = validated_data.pop('filterfield_set')

        with transaction.atomic():
            instance.name = validated_data.get('name', instance.name)
            instance.description = validated_data.get('description',
                                                      instance.description)
            instance.distinct = validated_data.get('distinct',
                                                   instance.distinct)
            instance.modified = datetime.date.today()
            instance.save()
            instance.displayfield_set.all().delete()
            for displayfield_data in displayfields_data:
                display_field = DisplayField()
                for key, value in displayfield_data.items():
                    setattr(display_field, key, value)
                display_field.save()
            instance.filterfield_set.all().delete()
            for filterfield_data in filterfields_data:
                filter_field = FilterField()
                for key, value in filterfield_data.items():
                    setattr(filter_field, key, value)
                filter_field.save()
        return instance
    def update(self, instance, validated_data):
        displayfields_data = validated_data.pop('displayfield_set')
        filterfields_data = validated_data.pop('filterfield_set')

        with transaction.atomic():
            instance.name = validated_data.get('name', instance.name)
            instance.chart_categories = validated_data.get(
                'chart_categories', instance.chart_categories)
            instance.chart_series = validated_data.get('chart_series',
                                                       instance.chart_series)
            instance.chart_values = validated_data.get('chart_values',
                                                       instance.chart_values)
            instance.chart_type = validated_data.get('chart_type',
                                                     instance.chart_type)
            instance.chart_style = validated_data.get('chart_style',
                                                      instance.chart_style)
            instance.chart_stacked = validated_data.get(
                'chart_stacked', instance.chart_stacked)
            instance.chart_labels = validated_data.get('chart_labels',
                                                       instance.chart_labels)
            instance.chart_total = validated_data.get('chart_total',
                                                      instance.chart_total)
            instance.description = validated_data.get('description',
                                                      instance.description)
            instance.distinct = validated_data.get('distinct',
                                                   instance.distinct)
            instance.modified = datetime.date.today()
            instance.save()
            instance.displayfield_set.all().delete()
            for displayfield_data in displayfields_data:
                display_field = DisplayField()
                for key, value in displayfield_data.items():
                    setattr(display_field, key, value)
                display_field.save()
            instance.filterfield_set.all().delete()
            for filterfield_data in filterfields_data:
                filter_field = FilterField()
                for key, value in filterfield_data.items():
                    setattr(filter_field, key, value)
                filter_field.save()
        return instance
    def add_filter_fields_to_report(self, report):
        """Adds default filters to the given report"""

        award_acceptance_filter = FilterField(
            report=report,
            path='awardacceptance__',
            path_verbose='awardacceptance',
            field='current_modification',
            field_verbose='current modification [BooleanField]',
            filter_type='exact',
            filter_value='True',
        )
        award_acceptance_filter.save()

        award_negotiation_filter = FilterField(
            report=report,
            path='awardnegotiation__',
            path_verbose='awardnegotiation',
            field='current_modification',
            field_verbose='current modification [BooleanField]',
            filter_type='exact',
            filter_value='True',
        )
        award_negotiation_filter.save()

        first_proposal_filter = FilterField(
            report=report,
            path='proposal__',
            path_verbose='proposal',
            field='is_first_proposal',
            field_verbose='is first proposal [BooleanField]',
            filter_type='exact',
            filter_value='True',
        )
        first_proposal_filter.save()