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()
    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 ajax_get_choices(request):
    path_verbose = request.GET.get('path_verbose')
    label = request.GET.get('label')
    root_model = request.GET.get('root_model')
    choices = FilterField().get_choices(path_verbose or root_model, label)
    select_widget = forms.Select(choices=[('', '---------')] + list(choices))
    options_html = select_widget.render_options([], [0])
    return HttpResponse(options_html)
 def validate(self, data):
     if 'filterfield_set' in data:
         for filter_field_data in data['filterfield_set']:
             filter_field = FilterField()
             for key, value in filter_field_data.items():
                 setattr(filter_field, key, value)
             filter_field.clean()
             filter_field_data['filter_value'] = filter_field.filter_value
     return data
Exemple #5
0
def ajax_get_choices(request):
    path_verbose = request.GET.get('path_verbose')
    label = request.GET.get('label')
    root_model = request.GET.get('root_model')
    app_label = request.GET.get('app_label')
    model_name = path_verbose or root_model
    model_name = model_name.split(':')[-1]
    model = ContentType.objects.get(model=model_name, app_label=app_label).model_class()
    choices = FilterField().get_choices(model, label)
    select_widget = forms.Select(choices=[('','---------')] + list(choices))
    options_html = select_widget.render_options([], [0])
    return HttpResponse(options_html)
    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