Example #1
0
 def render(self, request, place, content, context, *args, **kwargs):
     if not isinstance(content, Collection):
         return ''
     searchers = content.searcher_set.all()
     forms_search = []
     for search in searchers:
         if not search.options:
             continue
         form_search_class = modelform_factory(
             model=search.content_type.model_class(), form=SearcherForm)
         data = None
         if request.GET.get('__searcher'):
             data = request.GET
         fields = get_fields(search)
         if not fields:
             continue
         form_search_class.base_fields = get_fields(search)
         form_search = form_search_class(data=data,
                                         is_admin=False,
                                         search=search)
         if data:
             form_search.is_valid()
         forms_search.append(form_search)
     return self.render_block(request,
                              template_name='smartsearch/block_search.html',
                              block_title=_('Searchers'),
                              context={'forms_search': forms_search})
Example #2
0
 def get_field_form(self,
                    opts=None,
                    default=True,
                    fields_form_filter=None,
                    fields_form_display=None):
     prefix, field_name = parsed_field_name(self.field_name)
     form = modelform_factory(self.model,
                              form=BaseReportForm,
                              fields=[field_name])
     field = self.get_basic_field_form(form, field_name)
     autoreports_initial = getattr(settings, 'AUTOREPORTS_INITIAL', True)
     autoreports_subfix = getattr(settings, 'AUTOREPORTS_SUBFIX', True)
     if not autoreports_initial:
         field.initial = None
     if opts:
         help_text = self.get_help_text_to_opts(opts)
         display = opts.get('display', None)
         filters = opts.get('filters', [])
         label = self.get_label_to_opts(opts)
         if label:
             field.label = label
         if help_text:
             field.help_text = help_text
         if display:
             fields_form_display[self.field_name] = copy(field)
         for fil in filters:
             field_copy = copy(field)
             fil, verbose_fil = self.get_change_filter(fil, opts)
             field_name_subfix = "%s__%s" % (self.field_name_parsed, fil)
             if autoreports_subfix:
                 field_label = u"%s (%s)" % (field_copy.label, verbose_fil)
                 field_copy.label = field_label
             fields_form_filter[field_name_subfix] = self.change_widget(
                 field_copy, opts)
     else:
         if default:
             fil = self.get_filter_default()
             if fil is None:
                 return (fields_form_filter, fields_form_display)
             field_name_subfix = "%s__%s" % (self.field_name_parsed, fil)
             if autoreports_subfix:
                 field_label = u"%s (%s)" % (field.label,
                                             dict(self.get_filters())[fil])
                 field.label = field_label
             fields_form_filter[field_name_subfix] = self.change_widget(
                 field)
         else:
             fields_form_display[self.field_name] = field
     return (fields_form_filter, fields_form_display)
Example #3
0
def search_is_valid(request, searcher_id):
    search = Searcher.objects.get(pk=searcher_id)
    model = search.content_type.model_class()
    form_search_class = modelform_factory(model=model, form=SearcherForm)
    data = request.GET
    form_search_class.base_fields = get_fields(search)
    form_search = form_search_class(data=data, is_admin=False, search=search)

    __full_path = "%s?" % data.get('__path')
    del data['__path']
    __full_path = "%s%s" % (__full_path, request.GET.urlencode())

    if not form_search.is_valid():
        __full_path = "%s&__ignore_filters=1" % __full_path
    return HttpResponseRedirect(__full_path)
Example #4
0
def search_is_valid(request, searcher_id):
    search = Searcher.objects.get(pk=searcher_id)
    model = search.content_type.model_class()
    form_search_class = modelform_factory(model=model,
                                          form=SearcherForm)
    data = request.GET
    form_search_class.base_fields = get_fields(search)
    form_search = form_search_class(data=data, is_admin=False, search=search)

    __full_path = "%s?" % data.get('__path')
    del data['__path']
    __full_path = "%s%s" % (__full_path, request.GET.urlencode())

    if not form_search.is_valid():
        __full_path = "%s&__ignore_filters=1" % __full_path
    return HttpResponseRedirect(__full_path)
Example #5
0
 def get_field_form(self, opts=None, default=True,
                    fields_form_filter=None, fields_form_display=None):
     prefix, field_name = parsed_field_name(self.field_name)
     form = modelform_factory(self.model, form=BaseReportForm, fields=[field_name])
     field = self.get_basic_field_form(form, field_name)
     autoreports_initial = getattr(settings, 'AUTOREPORTS_INITIAL', True)
     autoreports_subfix = getattr(settings, 'AUTOREPORTS_SUBFIX', True)
     if not autoreports_initial:
         field.initial = None
     if opts:
         help_text = self.get_help_text_to_opts(opts)
         display = opts.get('display', None)
         filters = opts.get('filters', [])
         label = self.get_label_to_opts(opts)
         if label:
             field.label = label
         if help_text:
             field.help_text = help_text
         if display:
             fields_form_display[self.field_name] = copy(field)
         for fil in filters:
             field_copy = copy(field)
             fil, verbose_fil = self.get_change_filter(fil, opts)
             field_name_subfix = "%s__%s" % (self.field_name_parsed, fil)
             if autoreports_subfix:
                 field_label = u"%s (%s)" % (field_copy.label, verbose_fil)
                 field_copy.label = field_label
             fields_form_filter[field_name_subfix] = self.change_widget(field_copy, opts)
     else:
         if default:
             fil = self.get_filter_default()
             if fil is None:
                 return (fields_form_filter, fields_form_display)
             field_name_subfix = "%s__%s" % (self.field_name_parsed, fil)
             if autoreports_subfix:
                 field_label = u"%s (%s)" % (field.label, dict(self.get_filters())[fil])
                 field.label = field_label
             fields_form_filter[field_name_subfix] = self.change_widget(field)
         else:
             fields_form_display[self.field_name] = field
     return (fields_form_filter, fields_form_display)
Example #6
0
 def render(self, request, place, content, context, *args, **kwargs):
     if not isinstance(content, Collection):
         return ''
     searchers = content.searcher_set.all()
     forms_search = []
     for search in searchers:
         if not search.options:
             continue
         form_search_class = modelform_factory(model=search.content_type.model_class(),
                                               form=SearcherForm)
         data = None
         if request.GET.get('__searcher'):
             data = request.GET
         fields = get_fields(search)
         if not fields:
             continue
         form_search_class.base_fields = get_fields(search)
         form_search = form_search_class(data=data, is_admin=False, search=search)
         if data:
             form_search.is_valid()
         forms_search.append(form_search)
     return self.render_block(request, template_name='smartsearch/block_search.html',
                              block_title=_('Searchers'),
                              context={'forms_search': forms_search})
Example #7
0
 def get_report_form_display(self, data, fields):
     form_display_class = modelform_factory(model=self.model,
                                            form=self.report_form_display)
     form_display_class.base_fields = fields
     form_display = form_display_class(data=data, is_admin=self.is_admin)
     return form_display
Example #8
0
 def get_report_form_display(self, data, fields):
     form_display_class = modelform_factory(model=self.model,
                                            form=self.report_form_display)
     form_display_class.base_fields = fields
     form_display = form_display_class(data=data, is_admin=self.is_admin)
     return form_display