def get_date_from_to_queryset(self, date_from, date_to, queryset=None): """ Get a ``QuerySet`` of ``ProductReview`` items that match the time frame specified by *date_from* and *date_to*. Both parameters are expected to be in ``datetime`` format with *date_from* < *date_to*. If *queryset* is specified, it will be filtered according to the given dates. Otherwise, a new queryset for all ``ProductReview`` items is created. """ if not queryset: self.model.objects.all() if date_from and date_to: # Add 24 hours to make search inclusive date_to = date_to + datetime.timedelta(days=1) queryset = queryset.filter(date_created__gte=date_from).filter( date_created__lt=date_to) self.desc_ctx['date_filter'] = _( " created between %(start_date)s and %(end_date)s") % { 'start_date': format_datetime(date_from), 'end_date': format_datetime(date_to) } elif date_from: queryset = queryset.filter(date_created__gte=date_from) self.desc_ctx['date_filter'] = _( " created after %s") % format_datetime(date_from) elif date_to: # Add 24 hours to make search inclusive date_to = date_to + datetime.timedelta(days=1) queryset = queryset.filter(date_created__lt=date_to) self.desc_ctx['date_filter'] = _( " created before %s") % format_datetime(date_to) return queryset
def get_date_from_to_queryset(self, date_from, date_to, queryset=None): """ Get a ``QuerySet`` of ``ProductReview`` items that match the time frame specified by *date_from* and *date_to*. Both parameters are expected to be in ``datetime`` format with *date_from* < *date_to*. If *queryset* is specified, it will be filtered according to the given dates. Otherwise, a new queryset for all ``ProductReview`` items is created. """ if queryset is None: queryset = self.model.objects.all() if date_from: queryset = queryset.filter(date_created__gte=date_from) self.desc_ctx['date_filter'] \ = _(" created after %s") % format_datetime(date_from) if date_to: # Add 24 hours to make search inclusive date_to = date_to + datetime.timedelta(days=1) queryset = queryset.filter(date_created__lt=date_to) self.desc_ctx['date_filter'] \ = _(" created before %s") % format_datetime(date_to) if date_from and date_to: # override description self.desc_ctx['date_filter'] \ = _(" created between %(start_date)s and %(end_date)s") % { 'start_date': format_datetime(date_from), 'end_date': format_datetime(date_to)} return queryset
def get_desc_context(self, data=None): """Update the title that describes the queryset""" desc_ctx = { 'main_filter': _('All orders'), 'name_filter': '', 'title_filter': '', 'upc_filter': '', 'sku_filter': '', 'date_filter': '', 'voucher_filter': '', 'payment_filter': '', 'status_filter': '', } if 'order_status' in self.request.GET: status = self.request.GET['order_status'] if status.lower() == 'none': desc_ctx['main_filter'] = _("Orders without an order status") else: desc_ctx['main_filter'] = _("Orders with status '%s'") % status if data is None: return desc_ctx if data['order_number']: desc_ctx['main_filter'] = _('Orders with number starting with "%s"') % data['order_number'] if data['name']: desc_ctx['name_filter'] = _(" with customer name matching '%s'") % data['name'] if data['product_title']: desc_ctx['title_filter'] = _(" including an item with title matching '%s'") % data['product_title'] if data['upc']: desc_ctx['upc_filter'] = _(" including an item with UPC '%s'") % data['upc'] if data['partner_sku']: desc_ctx['upc_filter'] = _(" including an item with ID '%s'") % data['partner_sku'] if data['date_from'] and data['date_to']: desc_ctx['date_filter'] = _(" placed between %(start_date)s and %(end_date)s") % { 'start_date': format_datetime(data['date_from']), 'end_date': format_datetime(data['date_to'])} elif data['date_from']: desc_ctx['date_filter'] = _(" placed since %s") % format_datetime(data['date_from']) elif data['date_to']: date_to = data['date_to'] + datetime.timedelta(days=1) desc_ctx['date_filter'] = _(" placed before %s") % format_datetime(data['date_to']) if data['voucher']: desc_ctx['voucher_filter'] = _(" using voucher '%s'") % data['voucher'] if data['payment_method']: desc_ctx['payment_filter'] = _(" paid for by %s") % data['payment_method'] if data['status']: desc_ctx['status_filter'] = _(" with status %s") % data['status'] return desc_ctx
def get_desc_context(self, data=None): # noqa (too complex (16)) """Update the title that describes the queryset""" desc_ctx = { "main_filter": _("All orders"), "name_filter": "", "title_filter": "", "upc_filter": "", "sku_filter": "", "date_filter": "", "voucher_filter": "", "payment_filter": "", "status_filter": "", } if "order_status" in self.request.GET: status = self.request.GET["order_status"] if status.lower() == "none": desc_ctx["main_filter"] = _("Orders without an order status") else: desc_ctx["main_filter"] = _("Orders with status '%s'") % status if data is None: return desc_ctx if data["order_number"]: desc_ctx["main_filter"] = _("Orders with number starting with" ' "%(order_number)s"') % data if data["name"]: desc_ctx["name_filter"] = _(" with customer name matching" " '%(name)s'") % data if data["product_title"]: desc_ctx["title_filter"] = _(" including an item with title matching" " '%(product_title)s'") % data if data["upc"]: desc_ctx["upc_filter"] = _(" including an item with UPC" " '%(upc)s'") % data if data["partner_sku"]: desc_ctx["upc_filter"] = _(" including an item with ID" " '%(partner_sku)s'") % data if data["date_from"] and data["date_to"]: desc_ctx["date_filter"] = _(" placed between %(start_date)s and %(end_date)s") % { "start_date": format_datetime(data["date_from"]), "end_date": format_datetime(data["date_to"]), } elif data["date_from"]: desc_ctx["date_filter"] = _(" placed since %s") % format_datetime(data["date_from"]) elif data["date_to"]: date_to = data["date_to"] + datetime.timedelta(days=1) desc_ctx["date_filter"] = _(" placed before %s") % format_datetime(date_to) if data["voucher"]: desc_ctx["voucher_filter"] = _(" using voucher '%(voucher)s'") % data if data["payment_method"]: desc_ctx["payment_filter"] = _(" paid for by %(payment_method)s") % data if data["status"]: desc_ctx["status_filter"] = _(" with status %(status)s") % data return desc_ctx
def download_selected_searchrequests(self, request, searchrequests): response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename=%s' \ % self.get_download_filename(request) writer = CsvUnicodeWriter(response, delimiter=',') meta_data = (('id', _('Search request number')), ('num_items', _('Number of items')), ('state', _('Status')), ('owner', _('Owner')), ('creation_date', _('Creation date')), ) columns = SortedDict() for k, v in meta_data: columns[k] = v writer.writerow(columns.values()) for searchrequest in searchrequests: row = columns.copy() row['id'] = searchrequest.id row['creation_date'] = format_datetime(searchrequest.date_created, 'DATETIME_FORMAT') row['state'] = searchrequest.state row['num_items'] = searchrequest.num_items row['owner'] = searchrequest.owner.email encoded_values = [six.text_type(value).encode('utf8') for value in row.values()] writer.writerow(encoded_values) return response
def download_selected_quotes(self, request, quotes): response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename=%s' \ % self.get_download_filename(request) writer = CsvUnicodeWriter(response, delimiter=',') meta_data = (('id', _('Quote number')), ('search_request', _('Search request')), ('state', _('Status')), ('owner', _('Owner')), ('date_created', _('Creation date')), ('base_total_excl_tax', _('Base total (excl tax)')), ('base_total_incl_tax', _('Base total (inc tax)')), ('shipping_total_excl_tax', _('Shipping total (excl tax)')), ('shipping_total_inc_tax', _('Shipping total (incl tax)')), ('grand_total_excl_tax', _('Grand total (excl tax)')), ('grand_total_inc_tax', _('Grand total (incl tax)')), ('warranty_days', _('Warranty days')), ('shipping_days', _('Shipping days')), ) columns = SortedDict() for k, v in meta_data: columns[k] = v writer.writerow(columns.values()) for quote in quotes: row = columns.copy() row['id'] = quote.id row['search_request'] = quote.search_request row['state'] = quote.state row['owner'] = quote.owner.email row['date_created'] = format_datetime(quote.date_created, 'DATETIME_FORMAT') row['date_updated'] = format_datetime(quote.date_updated, 'DATETIME_FORMAT') row['base_total_excl_tax'] = quote.base_total_excl_tax row['base_total_incl_tax'] = quote.base_total_incl_tax row['shipping_total_excl_tax'] = quote.shipping_total_excl_tax row['shipping_total_incl_tax'] = quote.shipping_total_incl_tax row['grand_total_excl_tax'] = quote.grand_total_excl_tax row['grand_total_incl_tax'] = quote.grand_total_incl_tax row['warranty_days'] = quote.warranty_days row['shipping_days'] = quote.shipping_days encoded_values = [six.text_type(value).encode('utf8') for value in row.values()] writer.writerow(encoded_values) return response
def get_row_values(self, order): row = {'number': order.number, 'customer': order.email, 'num_items': order.num_items, 'date': format_datetime(order.date_placed, 'DATETIME_FORMAT'), 'value': order.total_incl_tax, 'status': order.status} if order.shipping_address: row['shipping_address_name'] = order.shipping_address.name if order.billing_address: row['billing_address_name'] = order.billing_address.name return row
def get_desc_context(self, data=None): # noqa (too complex (16)) """Update the title that describes the queryset""" desc_ctx = { 'main_filter': _('All search requests'), 'name_filter': '', 'date_filter': '', 'state_filter': '', } if 'searchrequest_state' in self.request.GET: state = self.request.GET['searchrequest_state'] if state.lower() == 'none': desc_ctx['main_filter'] = _("Search requests without an state") else: desc_ctx['main_filter'] = _("Search requests with state '%s'") % state if data is None: return desc_ctx if data['searchrequest_number']: desc_ctx['main_filter'] = _('Search requests with number starting with' ' "%(searchrequest_number)s"') % data if data['name']: desc_ctx['name_filter'] = _(" with user name matching" " '%(name)s'") % data if data['date_from'] and data['date_to']: desc_ctx['date_filter'] \ = _(" placed between %(start_date)s and %(end_date)s") \ % {'start_date': format_datetime(data['date_from']), 'end_date': format_datetime(data['date_to'])} elif data['date_from']: desc_ctx['date_filter'] = _(" placed since %s") \ % format_datetime(data['date_from']) elif data['date_to']: date_to = data['date_to'] + datetime.timedelta(days=1) desc_ctx['date_filter'] = _(" placed before %s") \ % format_datetime(date_to) if data['state']: desc_ctx['state_filter'] = _(" with status %(state)s") % data return desc_ctx
def get_date_from_to_queryset(self, date_from, date_to, queryset=None): if queryset is None: queryset = self.model.objects.all() if date_from: queryset = queryset.filter(date_created__gte=date_from) self.desc_ctx['date_filter'] \ = _(" created after %s") % format_datetime(date_from) if date_to: # Add 24 hours to make search inclusive date_to = date_to + datetime.timedelta(days=1) queryset = queryset.filter(date_created__lt=date_to) self.desc_ctx['date_filter'] \ = _(" created before %s") % format_datetime(date_to) if date_from and date_to: # override description self.desc_ctx['date_filter'] \ = _(" created between %(start_date)s and %(end_date)s") % { 'start_date': format_datetime(date_from), 'end_date': format_datetime(date_to)} return queryset
def download_selected_orders(self, request, orders): response = HttpResponse(content_type='text/csv') response[ 'Content-Disposition'] = 'attachment; filename=%s' % self.get_download_filename( request) writer = CsvUnicodeWriter(response, delimiter=',') meta_data = ( ('number', _('Order number')), ('value', _('Order value')), ('date', _('Date of purchase')), ('num_items', _('Number of items')), ('status', _('Order status')), ('customer', _('Customer email address')), ('shipping_address_name', _('Deliver to name')), ('billing_address_name', _('Bill to name')), ) columns = SortedDict() for k, v in meta_data: columns[k] = v writer.writerow(columns.values()) for order in orders: row = columns.copy() row['number'] = order.number row['value'] = order.total_incl_tax row['date'] = format_datetime(order.date_placed, 'DATETIME_FORMAT') row['num_items'] = order.num_items row['status'] = order.status row['customer'] = order.email if order.shipping_address: row['shipping_address_name'] = order.shipping_address.name else: row['shipping_address_name'] = '' if order.billing_address: row['billing_address_name'] = order.billing_address.name else: row['billing_address_name'] = '' encoded_values = [ unicode(value).encode('utf8') for value in row.values() ] writer.writerow(encoded_values) return response
def download_selected_invoices(self, request, invoices): response = http.HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename=%s' \ % self.get_download_filename(request) writer = UnicodeCSVWriter(open_file=response) meta_data = ( ('number', _('Invoice number')), ('value', _('Invoice value')), ('date', _('Date of purchase')), ('order_number', _('Order number')), ('num_items', _('Number of items')), ('status', _('Invoice status')), ('customer', _('Customer email address')), ('person_name', _('Pay as juristic person')), ('person_vatin', _('Juristic person VAT number')), ('person_code', _('Juristic person code (e.g. KPP in Russia)')), ) columns = SortedDict() for k, v in meta_data: columns[k] = v writer.writerow(columns.values()) for invoice in invoices: row = columns.copy() row['number'] = invoice.number row['value'] = invoice.total_incl_tax row['date'] = format_datetime(invoice.date_created, 'DATETIME_FORMAT') row['order_number'] = invoice.order_number row['num_items'] = invoice.order.num_items row['status'] = invoice.status row['customer'] = invoice.order.email if invoice.person: row['person_name'] = invoice.person.name row['person_vatin'] = invoice.person.vatin row['person_code'] = invoice.person.reason_code else: row['person_name'] = '<none>' row['person_vatin'] = '<none>' row['person_code'] = '<none>' writer.writerow(row.values()) return response
def download_selected_orders(self, request, orders): response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename=%s' \ % self.get_download_filename(request) writer = CsvUnicodeWriter(response, delimiter=',') meta_data = (('number', _('Order number')), ('value', _('Order value')), ('date', _('Date of purchase')), ('num_items', _('Number of items')), ('status', _('Order status')), ('customer', _('Customer email address')), ('shipping_address_name', _('Deliver to name')), ('billing_address_name', _('Bill to name')), ) columns = SortedDict() for k, v in meta_data: columns[k] = v writer.writerow(columns.values()) for order in orders: row = columns.copy() row['number'] = order.number row['value'] = order.total_incl_tax row['date'] = format_datetime(order.date_placed, 'DATETIME_FORMAT') row['num_items'] = order.num_items row['status'] = order.status row['customer'] = order.email if order.shipping_address: row['shipping_address_name'] = order.shipping_address.name else: row['shipping_address_name'] = '' if order.billing_address: row['billing_address_name'] = order.billing_address.name else: row['billing_address_name'] = '' encoded_values = [six.text_type(value).encode('utf8') for value in row.values()] writer.writerow(encoded_values) return response
def download_selected_invoices(self, request, invoices): response = http.HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename=%s' \ % self.get_download_filename(request) writer = UnicodeCSVWriter(open_file=response) meta_data = (('number', _('Invoice number')), ('value', _('Invoice value')), ('date', _('Date of purchase')), ('order_number', _('Order number')), ('num_items', _('Number of items')), ('status', _('Invoice status')), ('customer', _('Customer email address')), ('person_name', _('Pay as juristic person')), ('person_vatin', _('Juristic person VAT number')), ('person_code', _('Juristic person code (e.g. KPP in Russia)')), ) columns = SortedDict() for k, v in meta_data: columns[k] = v writer.writerow(columns.values()) for invoice in invoices: row = columns.copy() row['number'] = invoice.number row['value'] = invoice.total_incl_tax row['date'] = format_datetime(invoice.date_created, 'DATETIME_FORMAT') row['order_number'] = invoice.order_number row['num_items'] = invoice.order.num_items row['status'] = invoice.status row['customer'] = invoice.order.email if invoice.person: row['person_name'] = invoice.person.name row['person_vatin'] = invoice.person.vatin row['person_code'] = invoice.person.reason_code else: row['person_name'] = '<none>' row['person_vatin'] = '<none>' row['person_code'] = '<none>' writer.writerow(row.values()) return response
def download_selected_orders(self, request, orders): response = HttpResponse(content_type="text/csv") response["Content-Disposition"] = "attachment; filename=%s" % self.get_download_filename(request) writer = UnicodeCSVWriter(open_file=response) meta_data = ( ("number", _("Order number")), ("value", _("Order value")), ("date", _("Date of purchase")), ("num_items", _("Number of items")), ("status", _("Order status")), ("customer", _("Customer email address")), ("shipping_address_name", _("Deliver to name")), ("billing_address_name", _("Bill to name")), ) columns = SortedDict() for k, v in meta_data: columns[k] = v writer.writerow(columns.values()) for order in orders: row = columns.copy() row["number"] = order.number row["value"] = order.total_incl_tax row["date"] = format_datetime(order.date_placed, "DATETIME_FORMAT") row["num_items"] = order.num_items row["status"] = order.status row["customer"] = order.email if order.shipping_address: row["shipping_address_name"] = order.shipping_address.name else: row["shipping_address_name"] = "" if order.billing_address: row["billing_address_name"] = order.billing_address.name else: row["billing_address_name"] = "" writer.writerow(row) return response
def format_datetime(self, dt): if not dt: return '' return utils.format_datetime(dt, 'DATETIME_FORMAT')
def get_desc_context(self, data=None): # noqa (too complex (16)) """Update the title that describes the queryset""" desc_ctx = { 'main_filter': _('All orders'), 'name_filter': '', 'title_filter': '', 'upc_filter': '', 'sku_filter': '', 'date_filter': '', 'voucher_filter': '', 'payment_filter': '', 'status_filter': '', } if 'order_status' in self.request.GET: status = self.request.GET['order_status'] if status.lower() == 'none': desc_ctx['main_filter'] = _("Orders without an order status") else: desc_ctx['main_filter'] = _("Orders with status '%s'") % status if data is None: return desc_ctx if data['order_number']: desc_ctx['main_filter'] = _('Orders with number starting with' ' "%(order_number)s"') % data if data['name']: desc_ctx['name_filter'] = _(" with customer name matching" " '%(name)s'") % data if data['product_title']: desc_ctx['title_filter'] \ = _(" including an item with title matching" " '%(product_title)s'") % data if data['upc']: desc_ctx['upc_filter'] = _(" including an item with UPC" " '%(upc)s'") % data if data['partner_sku']: desc_ctx['upc_filter'] = _(" including an item with ID" " '%(partner_sku)s'") % data if data['date_from'] and data['date_to']: desc_ctx['date_filter'] \ = _(" placed between %(start_date)s and %(end_date)s") \ % {'start_date': format_datetime(data['date_from']), 'end_date': format_datetime(data['date_to'])} elif data['date_from']: desc_ctx['date_filter'] = _(" placed since %s") \ % format_datetime(data['date_from']) elif data['date_to']: date_to = data['date_to'] + datetime.timedelta(days=1) desc_ctx['date_filter'] = _(" placed before %s") \ % format_datetime(date_to) if data['voucher']: desc_ctx['voucher_filter'] = _(" using voucher '%(voucher)s'") \ % data if data['payment_method']: desc_ctx['payment_filter'] = _(" paid for by %(payment_method)s") \ % data if data['status']: desc_ctx['status_filter'] = _(" with status %(status)s") % data return desc_ctx
def format_date(self, d): if not d: return '' return utils.format_datetime(d, 'DATE_FORMAT')
def format_datetime(self, dt): if not dt: return '' return utils.format_datetime(dt, 'DATETIME_FORMAT')
def format_date(self, d): if not d: return '' return utils.format_datetime(d, 'DATE_FORMAT')