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
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()