def get_queryset(self): self.search_filters = [] qs = (self.model.objects.filter( voucher_set=self.voucher_set).order_by('-date_created')) qs = sort_queryset( qs, self.request, ['num_basket_additions', 'num_orders', 'date_created'], '-date_created') # If form not submitted, return early is_form_submitted = ('name' in self.request.GET or 'code' in self.request.GET) if not is_form_submitted: self.form = self.form_class() return qs self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return qs data = self.form.cleaned_data if data['code']: qs = qs.filter(code__icontains=data['code']) self.search_filters.append(_('Code matches "%s"') % data['code']) return qs
def get_queryset(self): qs = self.model.objects.all().order_by('-date_created') qs = sort_queryset( qs, self.request, ['num_basket_additions', 'num_orders', 'date_created'], '-date_created') return qs
def get_queryset(self): qs = self.model.objects.all().order_by('-date_created') qs = sort_queryset(qs, self.request, ['num_basket_additions', 'num_orders', 'date_created'], '-date_created') self.description_ctx = {'main_filter': _('All vouchers'), 'name_filter': '', 'code_filter': ''} # If form not submitted, return early is_form_submitted = 'name' in self.request.GET if not is_form_submitted: self.form = self.form_class() return qs self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return qs data = self.form.cleaned_data if data['name']: qs = qs.filter(name__icontains=data['name']) self.description_ctx['name_filter'] \ = _("with name matching '%s'") % data['name'] if data['code']: qs = qs.filter(code=data['code']) self.description_ctx['code_filter'] \ = _("with code '%s'") % data['code'] if data['is_active']: now = timezone.now() qs = qs.filter(start_datetime__lte=now, end_datetime__gte=now) self.description_ctx['main_filter'] = _('Active vouchers') return qs
def get_queryset(self): """ Build the queryset for this list and also update the title that describes the queryset """ description_ctx = {"upc_filter": "", "title_filter": ""} queryset = get_queryset_for_user(self.request.user) if "recently_edited" in self.request.GET: # Just show recently edited queryset = queryset.order_by("-date_updated") queryset = queryset[: self.recent_products] else: # Allow sorting when all queryset = sort_queryset(queryset, self.request, ["title"], "-date_created") self.form = self.form_class(self.request.GET) if not self.form.is_valid(): self.description = self.description_template % description_ctx return queryset data = self.form.cleaned_data if data["upc"]: queryset = queryset.filter(upc=data["upc"]) description_ctx["upc_filter"] = _(" including an item with UPC '%s'") % data["upc"] if data["title"]: queryset = queryset.filter(title__icontains=data["title"]).distinct() description_ctx["title_filter"] = _(" including an item with title matching '%s'") % data["title"] self.description = self.description_template % description_ctx return queryset
def get_queryset(self): queryset = self.model.objects.select_related('product', 'user').all() queryset = sort_queryset( queryset, self.request, ['score', 'total_votes', 'date_created']) self.desc_ctx = { 'main_filter': _('All reviews'), 'date_filter': '', 'status_filter': '', 'kw_filter': '', 'name_filter': '', } self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return queryset data = self.form.cleaned_data queryset = self.add_filter_status(queryset, data['status']) queryset = self.add_filter_keyword(queryset, data['keyword']) queryset = self.add_filter_name(queryset, data['name']) queryset = self.get_date_from_to_queryset( data['date_from'], data['date_to'], queryset) return queryset
def get_queryset(self): """ Build the queryset for this list and also update the title that describes the queryset """ description_ctx = {'upc_filter': '', 'title_filter': ''} queryset = get_queryset_for_user(self.request.user) if 'recently_edited' in self.request.GET: # Just show recently edited queryset = queryset.order_by('-date_updated') queryset = queryset[:self.recent_products] else: # Allow sorting when all queryset = sort_queryset(queryset, self.request, ['title'], '-date_created') self.form = self.form_class(self.request.GET) if not self.form.is_valid(): self.description = self.description_template % description_ctx return queryset data = self.form.cleaned_data if data['upc']: queryset = queryset.filter(upc=data['upc']) description_ctx['upc_filter'] = _( " including an item with UPC '%s'") % data['upc'] if data['title']: queryset = queryset.filter( title__icontains=data['title']).distinct() description_ctx['title_filter'] = _( " including an item with title matching '%s'") % data['title'] self.description = self.description_template % description_ctx return queryset
def get_queryset(self): qs = self.model._default_manager.filter( offer_type=ConditionalOffer.SITE) qs = sort_queryset(qs, self.request, ['name', 'start_datetime', 'end_datetime', 'num_applications', 'total_discount']) self.description = _("All offers") # We track whether the queryset is filtered to determine whether we # show the search form 'reset' button. self.is_filtered = False self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return qs data = self.form.cleaned_data if data['name']: qs = qs.filter(name__icontains=data['name']) self.description = _("Offers matching '%s'") % data['name'] self.is_filtered = True if data['is_active']: self.is_filtered = True today = datetime.date.today() qs = qs.filter(start_date__lte=today, end_date__gte=today) return qs
def get_queryset(self): qs = self.model._default_manager.filter( offer_type=ConditionalOffer.SITE) qs = sort_queryset(qs, self.request, ['name', 'start_date', 'end_date', 'num_applications', 'total_discount']) self.description = _("All offers") # We track whether the queryset is filtered to determine whether we # show the search form 'reset' button. self.is_filtered = False self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return qs data = self.form.cleaned_data if data['name']: qs = qs.filter(name__icontains=data['name']) self.description = _("Offers matching '%s'") % data['name'] self.is_filtered = True if data['is_active']: self.is_filtered = True today = datetime.date.today() qs = qs.filter(start_date__lte=today, end_date__gte=today) return qs
def get_queryset(self): qs = self.model._default_manager.exclude(offer_type=ConditionalOffer.VOUCHER) qs = sort_queryset( qs, self.request, ["name", "start_datetime", "end_datetime", "num_applications", "total_discount"] ) self.description = _("All offers") # We track whether the queryset is filtered to determine whether we # show the search form 'reset' button. self.is_filtered = False self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return qs data = self.form.cleaned_data if data["name"]: qs = qs.filter(name__icontains=data["name"]) self.description = _("Offers matching '%s'") % data["name"] self.is_filtered = True if data["is_active"]: self.is_filtered = True today = timezone.now() qs = qs.filter(start_datetime__lte=today, end_datetime__gte=today) return qs
def get_queryset(self): qs = self.model.objects.all().order_by('-date_created') qs = sort_queryset(qs, self.request, ['num_basket_additions', 'num_orders', 'date_created'], '-date_created') self.description_ctx = {'main_filter': _('All vouchers'), 'name_filter': '', 'code_filter': ''} # If form not submitted, return early is_form_submitted = 'name' in self.request.GET if not is_form_submitted: self.form = self.form_class() return qs self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return qs data = self.form.cleaned_data if data['name']: qs = qs.filter(name__icontains=data['name']) self.description_ctx['name_filter'] \ = _("with name matching '%s'") % data['name'] if data['code']: qs = qs.filter(code=data['code']) self.description_ctx['code_filter'] \ = _("with code '%s'") % data['code'] if data['is_active']: today = datetime.date.today() qs = qs.filter(start_date__lte=today, end_date__gte=today) self.description_ctx['main_filter'] = _('Active vouchers') return qs
def get_queryset(self): qs = self.model.objects.all().order_by("-date_created") qs = sort_queryset(qs, self.request, ["num_basket_additions", "num_orders", "date_created"], "-date_created") self.description_ctx = {"main_filter": _("All vouchers"), "name_filter": "", "code_filter": ""} # If form not submitted, return early if "name" not in self.request.GET: self.form = self.form_class() return qs self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return qs data = self.form.cleaned_data if data["name"]: qs = qs.filter(name__icontains=data["name"]) self.description_ctx["name_filter"] = _("with name matching '%s'") % data["name"] if data["code"]: qs = qs.filter(code=data["code"]) self.description_ctx["code_filter"] = _("with code '%s'") % data["code"] if data["is_active"]: today = datetime.date.today() qs = qs.filter(start_date__lte=today, end_date__gte=today) self.description_ctx["main_filter"] = _("Active vouchers") return qs
def get_queryset(self): queryset = self.model.objects.select_related('product', 'user').all() queryset = sort_queryset(queryset, self.request, ['score', 'total_votes', 'date_created']) self.desc_ctx = { 'main_filter': _('All reviews'), 'date_filter': '', 'status_filter': '', 'kw_filter': '', 'name_filter': '', } self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return queryset data = self.form.cleaned_data queryset = self.add_filter_status(queryset, data['status']) queryset = self.add_filter_keyword(queryset, data['keyword']) queryset = self.add_filter_name(queryset, data['name']) queryset = self.get_date_from_to_queryset(data['date_from'], data['date_to'], queryset) return queryset
def apply_ordering(self, queryset): if "recently_edited" in self.request.GET: # Just show recently edited queryset = queryset.order_by("-date_updated") queryset = queryset[: self.recent_products] else: # Allow sorting when all queryset = sort_queryset(queryset, self.request, ["title"], "-date_created") return queryset
def get_queryset(self): queryset = self.model.objects.select_related('product').all() queryset = sort_queryset(queryset, self.request, ['score', 'total_votes', 'date_created']) self.desc_ctx = { 'main_filter': _('All reviews'), 'date_filter': '', 'status_filter': '', 'kw_filter': '', 'name_filter': '', } self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return queryset data = self.form.cleaned_data # checking for empty string rather then True is required # as zero is a valid value for 'status' but would be # evaluated to False if data['status'] != '': queryset = queryset.filter(status=data['status']).distinct() display_status = self.form.get_friendly_status() self.desc_ctx['status_filter'] \ = _(" with status matching '%s'") % display_status if data['keyword']: queryset = queryset.filter( Q(title__icontains=data['keyword']) | Q(body__icontains=data['keyword']) ).distinct() self.desc_ctx['kw_filter'] \ = _(" with keyword matching '%s'") % data['keyword'] queryset = self.get_date_from_to_queryset(data['date_from'], data['date_to'], queryset) if data['name']: # If the value is two words, then assume they are first name and # last name parts = data['name'].split() if len(parts) >= 2: queryset = queryset.filter( user__first_name__istartswith=parts[0], user__last_name__istartswith=parts[1] ).distinct() else: queryset = queryset.filter( Q(user__first_name__istartswith=parts[0]) | Q(user__last_name__istartswith=parts[-1]) ).distinct() self.desc_ctx['name_filter'] \ = _(" with customer name matching '%s'") % data['name'] return queryset
def get_queryset(self): queryset = self.model.objects.all() queryset = sort_queryset(queryset, self.request, ['score', 'total_votes', 'date_created']) self.desc_ctx = { 'main_filter': _('All reviews'), 'date_filter': '', 'status_filter': '', 'kw_filter': '', 'name_filter': '', } self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return queryset data = self.form.cleaned_data # checking for empty string rather then True is required # as zero is a valid value for 'status' but would be # evaluated to False if data['status'] != '': queryset = queryset.filter(status=data['status']).distinct() display_status = self.form.get_friendly_status() self.desc_ctx['status_filter'] \ = _(" with status matching '%s'") % display_status if data['keyword']: queryset = queryset.filter( Q(title__icontains=data['keyword']) | Q(body__icontains=data['keyword']) ).distinct() self.desc_ctx['kw_filter'] \ = _(" with keyword matching '%s'") % data['keyword'] queryset = self.get_date_from_to_queryset(data['date_from'], data['date_to'], queryset) if data['name']: # If the value is two words, then assume they are first name and # last name parts = data['name'].split() if len(parts) >= 2: queryset = queryset.filter( user__first_name__istartswith=parts[0], user__last_name__istartswith=parts[1] ).distinct() else: queryset = queryset.filter( Q(user__first_name__istartswith=parts[0]) | Q(user__last_name__istartswith=parts[-1]) ).distinct() self.desc_ctx['name_filter'] \ = _(" with customer name matching '%s'") % data['name'] return queryset
def apply_ordering(self, queryset): if 'recently_edited' in self.request.GET: # Just show recently edited queryset = queryset.order_by('-date_updated') queryset = queryset[:self.recent_bodyworks] else: # Allow sorting when all queryset = sort_queryset(queryset, self.request, ['name',], '-date_created') return queryset
def apply_ordering(self, queryset): if 'recently_edited' in self.request.GET: # Just show recently edited queryset = queryset.order_by('-date_updated') queryset = queryset[:self.recent_products] else: # Allow sorting when all queryset = sort_queryset(queryset, self.request, ['title'], '-date_created') return queryset
def get_queryset(self): self.search_filters = [] qs = self.model._default_manager.all() qs = sort_queryset(qs, self.request, [ 'name', 'offer_type', 'start_datetime', 'end_datetime', 'num_applications', 'total_discount' ]) self.form = self.form_class(self.request.GET) # This form is exactly the same as the other one, apart from having # fields with different IDs, so that they are unique within the page # (non-unique field IDs also break Select2) self.advanced_form = self.form_class(self.request.GET, auto_id='id_advanced_%s') if not all([self.form.is_valid(), self.advanced_form.is_valid()]): return qs name = self.form.cleaned_data['name'] offer_type = self.form.cleaned_data['offer_type'] is_active = self.form.cleaned_data['is_active'] has_vouchers = self.form.cleaned_data['has_vouchers'] voucher_code = self.form.cleaned_data['voucher_code'] if name: qs = qs.filter(name__icontains=name) self.search_filters.append(_('Name matches "%s"') % name) if is_active is not None: now = timezone.now() if is_active: qs = qs.filter((Q(start_datetime__lte=now) | Q(start_datetime__isnull=True)) & (Q(end_datetime__gte=now) | Q(end_datetime__isnull=True))) self.search_filters.append(_("Is active")) else: qs = qs.filter( Q(end_datetime__lt=now) | Q(start_datetime__gt=now)) self.search_filters.append(_("Is inactive")) if offer_type: qs = qs.filter(offer_type=offer_type) self.search_filters.append( _('Is of type "%s"') % dict(ConditionalOffer.TYPE_CHOICES)[offer_type]) if has_vouchers is not None: qs = qs.filter(vouchers__isnull=not has_vouchers).distinct() self.search_filters.append( _("Has vouchers") if has_vouchers else _("Has no vouchers")) if voucher_code: qs = qs.filter(vouchers__code__icontains=voucher_code).distinct() self.search_filters.append( _('Voucher code matches "%s"') % voucher_code) return qs
def get_queryset(self): queryset = super(RefundListView, self).get_queryset() queryset = queryset.prefetch_related('lines') queryset = sort_queryset(queryset, self.request, ['id'], 'id') self.form = self.form_class(self.request.GET) if self.form.is_valid(): for field, value in self.form.cleaned_data.iteritems(): if value: # Check if the field has a custom query filter setup. # If not, use a standard Django equals/match filter. _filter = self.get_filter_fields().get(field, {}).get('query_filter', field) queryset = queryset.filter(**{_filter: value}) return queryset
def get_queryset(self): # noqa (too complex (19)) """ Build the queryset for this list. """ queryset = super(BatchListView, self).get_queryset() form = self.form_class(self.request.GET) if form.is_valid(): data = form.cleaned_data if data.get('batch_id'): return queryset.filter(batch_id=data['batch_id']) if data.get('status'): return queryset.filter(status=data['status']) queryset = sort_queryset(queryset, self.request, ['status',], default='-date_created') return queryset
def get_queryset(self): queryset = super(RefundListView, self).get_queryset() queryset = queryset.prefetch_related('lines') queryset = sort_queryset(queryset, self.request, ['id', 'created'], 'id') self.form = self.form_class(self.request.GET) if self.form.is_valid(): for field, value in self.form.cleaned_data.iteritems(): if value: # Check if the field has a custom query filter setup. # If not, use a standard Django equals/match filter. _filter = self.get_filter_fields().get(field, {}).get('query_filter', field) queryset = queryset.filter(**{_filter: value}) return queryset
def get_queryset(self): queryset = super(RefundListView, self).get_queryset() queryset = queryset.prefetch_related('lines') queryset = sort_queryset(queryset, self.request, ['id'], 'id') self.form = self.form_class(self.request.GET) if self.form.is_valid(): for field, value in self.form.cleaned_data.iteritems(): if field == 'status' and value: queryset = queryset.filter(status__in=value) elif field == 'username' and value: queryset = queryset.filter(user__username__istartswith=value) elif value: queryset = queryset.filter(**{field: value}) return queryset
def get_queryset(self): queryset = super(RefundListView, self).get_queryset() queryset = queryset.prefetch_related('lines') queryset = sort_queryset(queryset, self.request, ['id'], 'id') self.form = self.form_class(self.request.GET) if self.form.is_valid(): for field, value in self.form.cleaned_data.iteritems(): if field == 'status' and value: queryset = queryset.filter(status__in=value) elif field == 'username' and value: queryset = queryset.filter( user__username__istartswith=value) elif value: queryset = queryset.filter(**{field: value}) return queryset
def get_queryset(self): qs = self.model._default_manager.all().filter( shop_id=self.request.shop_id) qs = sort_queryset(qs, self.request, ['name']) self.description = _("All partners") self.is_filtered = False self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return qs data = self.form.cleaned_data if data['name']: qs = qs.filter(name__icontains=data['name']) self.description = _("Partners matching '%s'") % data['name'] self.is_filtered = True return qs
def get_queryset(self): queryset = self.model.objects.select_related('review').select_related( 'reply_to').all() queryset = sort_queryset(queryset, self.request, ['score', 'total_votes', 'date_created']) self.desc_ctx = { 'main_filter': _('All review answers'), 'date_filter': '', 'kw_filter': '', 'name_filter': '', } self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return queryset data = self.form.cleaned_data if data['keyword']: queryset = queryset.filter( Q(body__icontains=data['keyword'])).distinct() self.desc_ctx['kw_filter'] \ = _(" with keyword matching '%s'") % data['keyword'] queryset = self.get_date_from_to_queryset(data['date_from'], data['date_to'], queryset) if data['name']: # If the value is two words, then assume they are first name and # last name parts = data['name'].split() if len(parts) >= 2: queryset = queryset.filter( user__first_name__istartswith=parts[0], user__last_name__istartswith=parts[1]).distinct() else: queryset = queryset.filter( Q(user__first_name__istartswith=parts[0]) | Q(user__last_name__istartswith=parts[-1])).distinct() self.desc_ctx['name_filter'] \ = _(" with customer name matching '%s'") % data['name'] return queryset
def get_queryset(self): qs = self.model.browsable().filter(users__contains=self.user) qs = sort_queryset(qs, self.request, ['name']) self.description = _("Available persons") # # We track whether the queryset is filtered to determine whether we # # show the search form 'reset' button. # self.is_filtered = False # self.form = self.form_class(self.request.GET) # if not self.form.is_valid(): # return qs # # data = self.form.cleaned_data # # if data['name']: # qs = qs.filter(name__icontains=data['name']) # self.description = _("Partners matching '%s'") % data['name'] # self.is_filtered = True return qs
def get_queryset(self): qs = self.model._default_manager.all() qs = sort_queryset(qs, self.request, ['name']) self.description = _("All partners") # We track whether the queryset is filtered to determine whether we # show the search form 'reset' button. self.is_filtered = False self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return qs data = self.form.cleaned_data if data['name']: qs = qs.filter(name__icontains=data['name']) self.description = _("Partners matching '%s'") % data['name'] self.is_filtered = True return qs
def get_queryset(self): """ Build the queryset for this list and also update the title that describes the queryset """ description_ctx = {'upc_filter': '', 'title_filter': ''} queryset = get_queryset_for_user(self.request.user) if 'recently_edited' in self.request.GET: # Just show recently edited queryset = queryset.order_by('-date_updated') queryset = queryset[:self.recent_products] else: # Allow sorting when all queryset = sort_queryset(queryset, self.request, ['title'], '-date_created') self.form = self.form_class(self.request.GET) if not self.form.is_valid(): self.description = self.description_template % description_ctx return queryset data = self.form.cleaned_data if data['upc']: queryset = queryset.filter(upc=data['upc']) description_ctx['upc_filter'] = _( " including an item with UPC '%s'") % data['upc'] if data['title']: queryset = queryset.filter( title__icontains=data['title']).distinct() description_ctx['title_filter'] = _( " including an item with title matching '%s'") % data['title'] if data['ids']: queryset = queryset.filter(pk__in=data['ids'].split(',')) description_ctx['ids_filter'] = _(" including an item with ids matching '%s'") % data['title'] self.description = self.description_template % description_ctx return queryset
def get_queryset(self): """ Build the queryset for this list. """ queryset = sort_queryset(self.base_queryset, self.request, ['id', ]) # Look for shortcut query filters if 'searchrequest_state' in self.request.GET: self.form = self.form_class() state = self.request.GET['searchrequest_state'] if state.lower() == 'none': state = None self.description = self.desc_template % self.get_desc_context() return self.base_queryset.filter(state=state) if 'searchrequest_number' not in self.request.GET: self.description = self.desc_template % self.get_desc_context() self.form = self.form_class() return queryset self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return queryset data = self.form.cleaned_data if data['searchrequest_number']: queryset = self.base_queryset.filter( id__istartswith=data['searchrequest_number']) if data['name']: # If the value is two words, then assume they are first name and # last name parts = data['name'].split() if len(parts) == 1: parts = [data['name'], data['name']] else: parts = [parts[0], parts[1:]] filter = Q(owner__first_name__istartswith=parts[0]) filter |= Q(owner__last_name__istartswith=parts[1]) queryset = queryset.filter(filter).distinct() if data['date_from'] and data['date_to']: # Add 24 hours to make search inclusive date_to = data['date_to'] + datetime.timedelta(days=1) queryset = queryset.filter(date_created__gte=data['date_from']) queryset = queryset.filter(date_created__lt=date_to) elif data['date_from']: queryset = queryset.filter(date_created__gte=data['date_from']) elif data['date_to']: date_to = data['date_to'] + datetime.timedelta(days=1) queryset = queryset.filter(date_created__lt=date_to) if data['state']: queryset = queryset.filter(state=data['state']) self.description = self.desc_template % self.get_desc_context(data) return queryset
def get_queryset(self): # noqa (too complex (19)) """ Build the queryset for this list. """ queryset = sort_queryset(self.base_queryset, self.request, ['number', 'total_incl_tax']) # Look for shortcut query filters if 'invoice_status' in self.request.GET: self.form = self.form_class() status = self.request.GET['invoice_status'] if status.lower() == 'none': status = None return self.base_queryset.filter(status=status) if 'invoice_number' not in self.request.GET: self.form = self.form_class() return queryset self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return queryset data = self.form.cleaned_data if data['invoice_number']: queryset = self.base_queryset.filter( number__istartswith=data['invoice_number']) if data['name']: # If the value is two words, then assume they are first name and # last name parts = data['name'].split() if len(parts) == 1: parts = [data['name'], data['name']] else: parts = [parts[0], parts[1:]] filter = Q(user__first_name__istartswith=parts[0]) filter |= Q(user__last_name__istartswith=parts[1]) queryset = queryset.filter(filter).distinct() if data['person_name']: queryset = queryset.filter( person__name__istartswith=data['person_name']).distinct() if data['date_from'] and data['date_to']: date_to = datetime_combine(data['date_to'], datetime.time.max) date_from = datetime_combine(data['date_from'], datetime.time.min) queryset = queryset.filter(date_created__gte=date_from, date_created__lt=date_to) elif data['date_from']: date_from = datetime_combine(data['date_from'], datetime.time.min) queryset = queryset.filter(date_created__gte=date_from) elif data['date_to']: date_to = datetime_combine(data['date_to'], datetime.time.max) queryset = queryset.filter(date_created__lt=date_to) if data['vatin']: queryset = queryset.filter(person__vatin=data['vatin']).distinct() if data['status']: queryset = queryset.filter(status=data['status']) return queryset
def get_queryset(self): # noqa (too complex (19)) """ Build the queryset for this list. """ queryset = sort_queryset(self.base_queryset, self.request, ['number', 'total_incl_tax']) # Look for shortcut query filters if 'order_status' in self.request.GET: self.form = self.form_class() status = self.request.GET['order_status'] if status.lower() == 'none': status = None return self.base_queryset.filter(status=status) if 'order_number' not in self.request.GET: self.form = self.form_class() return queryset self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return queryset data = self.form.cleaned_data if data['order_number']: queryset = self.base_queryset.filter( number__istartswith=data['order_number']) if data['name']: # If the value is two words, then assume they are first name and # last name parts = data['name'].split() allow_anon = getattr(settings, 'OSCAR_ALLOW_ANON_CHECKOUT', False) if len(parts) == 1: parts = [data['name'], data['name']] else: parts = [parts[0], parts[1:]] filter = Q(user__first_name__istartswith=parts[0]) filter |= Q(user__last_name__istartswith=parts[1]) if allow_anon: filter |= Q(billing_address__first_name__istartswith=parts[0]) filter |= Q(shipping_address__first_name__istartswith=parts[0]) filter |= Q(billing_address__last_name__istartswith=parts[1]) filter |= Q(shipping_address__last_name__istartswith=parts[1]) queryset = queryset.filter(filter).distinct() if data['product_title']: queryset = queryset.filter( lines__title__istartswith=data['product_title']).distinct() if data['upc']: queryset = queryset.filter(lines__upc=data['upc']) if data['partner_sku']: queryset = queryset.filter(lines__partner_sku=data['partner_sku']) if data['date_from'] and data['date_to']: date_to = datetime_combine(data['date_to'], datetime.time.max) date_from = datetime_combine(data['date_from'], datetime.time.min) queryset = queryset.filter( date_placed__gte=date_from, date_placed__lt=date_to) elif data['date_from']: date_from = datetime_combine(data['date_from'], datetime.time.min) queryset = queryset.filter(date_placed__gte=date_from) elif data['date_to']: date_to = datetime_combine(data['date_to'], datetime.time.max) queryset = queryset.filter(date_placed__lt=date_to) if data['voucher']: queryset = queryset.filter( discounts__voucher_code=data['voucher']).distinct() if data['payment_method']: queryset = queryset.filter( sources__source_type__code=data['payment_method']).distinct() if data['status']: queryset = queryset.filter(status=data['status']) return queryset
def get_queryset(self): self.search_filters = [] qs = self.model._default_manager.all() qs = sort_queryset( qs, self.request, ['num_basket_additions', 'num_orders', 'date_created'], '-date_created') # If form is not submitted, perform a default filter, and return early if not self.request.GET: self.form = self.form_class(initial={'in_set': False}) # This form is exactly the same as the other one, apart from having # fields with different IDs, so that they are unique within the page # (non-unique field IDs also break Select2) self.advanced_form = self.form_class(initial={'in_set': False}, auto_id='id_advanced_%s') self.search_filters.append(_("Not in a set")) return qs.filter(voucher_set__isnull=True) self.form = self.form_class(self.request.GET) # This form is exactly the same as the other one, apart from having # fields with different IDs, so that they are unique within the page # (non-unique field IDs also break Select2) self.advanced_form = self.form_class(self.request.GET, auto_id='id_advanced_%s') if not all([self.form.is_valid(), self.advanced_form.is_valid()]): return qs name = self.form.cleaned_data['name'] code = self.form.cleaned_data['code'] offer_name = self.form.cleaned_data['offer_name'] is_active = self.form.cleaned_data['is_active'] in_set = self.form.cleaned_data['in_set'] has_offers = self.form.cleaned_data['has_offers'] if name: qs = qs.filter(name__icontains=name) self.search_filters.append(_('Name matches "%s"') % name) if code: qs = qs.filter(code=code) self.search_filters.append(_('Code is "%s"') % code) if offer_name: qs = qs.filter(offers__name__icontains=offer_name) self.search_filters.append( _('Offer name matches "%s"') % offer_name) if is_active is not None: now = timezone.now() if is_active: qs = qs.filter(start_datetime__lte=now, end_datetime__gte=now) self.search_filters.append(_("Is active")) else: qs = qs.filter(end_datetime__lt=now) self.search_filters.append(_("Is inactive")) if in_set is not None: qs = qs.filter(voucher_set__isnull=not in_set) self.search_filters.append( _("In a set") if in_set else _("Not in a set")) if has_offers is not None: qs = qs.filter(offers__isnull=not has_offers).distinct() self.search_filters.append( _("Has offers") if has_offers else _("Has no offers")) return qs
def get_queryset(self): # noqa (too complex (19)) """ Build the queryset for this list. """ queryset = sort_queryset(self.base_queryset, self.request, ["number", "total_incl_tax"]) # Look for shortcut query filters if "order_status" in self.request.GET: self.form = self.form_class() status = self.request.GET["order_status"] if status.lower() == "none": status = None self.description = self.desc_template % self.get_desc_context() return self.base_queryset.filter(status=status) if "order_number" not in self.request.GET: self.description = self.desc_template % self.get_desc_context() self.form = self.form_class() return queryset self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return queryset data = self.form.cleaned_data if data["order_number"]: queryset = self.base_queryset.filter(number__istartswith=data["order_number"]) if data["name"]: # If the value is two words, then assume they are first name and # last name parts = data["name"].split() allow_anon = getattr(settings, "OSCAR_ALLOW_ANON_CHECKOUT", False) if len(parts) == 1: parts = [data["name"], data["name"]] else: parts = [parts[0], parts[1:]] filter = Q(user__first_name__istartswith=parts[0]) filter |= Q(user__last_name__istartswith=parts[1]) if allow_anon: filter |= Q(billing_address__first_name__istartswith=parts[0]) filter |= Q(shipping_address__first_name__istartswith=parts[0]) filter |= Q(billing_address__last_name__istartswith=parts[1]) filter |= Q(shipping_address__last_name__istartswith=parts[1]) queryset = queryset.filter(filter).distinct() if data["product_title"]: queryset = queryset.filter(lines__title__istartswith=data["product_title"]).distinct() if data["upc"]: queryset = queryset.filter(lines__upc=data["upc"]) if data["partner_sku"]: queryset = queryset.filter(lines__partner_sku=data["partner_sku"]) if data["date_from"] and data["date_to"]: # Add 24 hours to make search inclusive date_to = data["date_to"] + datetime.timedelta(days=1) queryset = queryset.filter(date_placed__gte=data["date_from"]) queryset = queryset.filter(date_placed__lt=date_to) elif data["date_from"]: queryset = queryset.filter(date_placed__gte=data["date_from"]) elif data["date_to"]: date_to = data["date_to"] + datetime.timedelta(days=1) queryset = queryset.filter(date_placed__lt=date_to) if data["voucher"]: queryset = queryset.filter(discounts__voucher_code=data["voucher"]).distinct() if data["payment_method"]: queryset = queryset.filter(sources__source_type__code=data["payment_method"]).distinct() if data["status"]: queryset = queryset.filter(status=data["status"]) self.description = self.desc_template % self.get_desc_context(data) return queryset
def get_queryset(self): # noqa (too complex (19)) """ Build the queryset for this list. """ queryset = sort_queryset(self.base_queryset, self.request, ['number', 'total_incl_tax']) # Look for shortcut query filters if 'invoice_status' in self.request.GET: self.form = self.form_class() status = self.request.GET['invoice_status'] if status.lower() == 'none': status = None return self.base_queryset.filter(status=status) if 'invoice_number' not in self.request.GET: self.form = self.form_class() return queryset self.form = self.form_class(self.request.GET) if not self.form.is_valid(): return queryset data = self.form.cleaned_data if data['invoice_number']: queryset = self.base_queryset.filter( number__istartswith=data['invoice_number']) if data['name']: # If the value is two words, then assume they are first name and # last name parts = data['name'].split() if len(parts) == 1: parts = [data['name'], data['name']] else: parts = [parts[0], parts[1:]] filter = Q(user__first_name__istartswith=parts[0]) filter |= Q(user__last_name__istartswith=parts[1]) queryset = queryset.filter(filter).distinct() if data['person_name']: queryset = queryset.filter(person__name__istartswith=data['person_name']).distinct() if data['date_from'] and data['date_to']: date_to = datetime_combine(data['date_to'], datetime.time.max) date_from = datetime_combine(data['date_from'], datetime.time.min) queryset = queryset.filter( date_created__gte=date_from, date_created__lt=date_to) elif data['date_from']: date_from = datetime_combine(data['date_from'], datetime.time.min) queryset = queryset.filter(date_created__gte=date_from) elif data['date_to']: date_to = datetime_combine(data['date_to'], datetime.time.max) queryset = queryset.filter(date_created__lt=date_to) if data['vatin']: queryset = queryset.filter( person__vatin=data['vatin']).distinct() if data['status']: queryset = queryset.filter(status=data['status']) return queryset