Source code for salesman.admin.utils

import json
from decimal import Decimal

from django.http import HttpRequest
from django.utils.html import format_html
from django.utils.safestring import mark_safe
from rest_framework.compat import pygments_css, pygments_highlight

from salesman.conf import app_settings
from salesman.orders.models import Order


[docs]def format_json(value: dict, styled: bool = True) -> str: """ Format json and add color using pygments with fallback. Args: value (dict): Dict to be formated to json styled (bool): True if output should be styled Returns: str: JSON formated html string """ value = json.dumps(value, indent=2) value = pygments_highlight(value, 'json', 'tango') style = pygments_css('tango') if styled and style: html = ( f'<style>{style}</style>' f'<pre class="highlight" style="margin: 0; padding: 1em;">{value}</pre>' ) else: html = f'<pre style="margin: 0;">{value}</pre>' return format_html('<div>{}</div>', mark_safe(html))
[docs]def format_price(value: Decimal, order: Order, request: HttpRequest) -> str: """ Wrapper for format price function with order admin context added. Args: value (Decimal): Number value to be formatted order (Order): Order instance request (HttpRequest): Django request Returns: str: Formatted price as string """ context = { 'request': request, 'order': order, 'admin': True, } return app_settings.SALESMAN_PRICE_FORMATTER(value, context=context)