Пример #1
0
def admin_summary(spending_request):
    spec = {
        "id": "id",
        "title": "title",
        "status": T.get_status_display(),
        "group": ("group", group_formatter),
        "event": "event",
        "category": T.get_category_display(),
        "category_precisions": "category_precisions",
        "explanation": "explanation",
        "amount": ("amount", display_price),
        "spending_date": "spending_date",
        "provider": "provider",
        "iban": "iban",
        "payer_name": "payer_name",
    }

    values = glom(spending_request, spec)

    return [{
        "label": get_spending_request_field_label(f),
        "value": values[f]
    } for f in spec]
logger = logging.getLogger(__name__)


def date_locale(d):
    return d.astimezone(timezone.get_current_timezone())


PAYMENT_SPEC = {
    "créé": ("created", date_locale),
    "dernier événement": ("modified", date_locale),
    "id": "id",
    "email": "email",
    "nom": "last_name",
    "prenom": "first_name",
    "telephone": Coalesce("phone_number.as_international", default=None),
    "statut": T.get_status_display(),
    "montant": ("price", lambda m: Decimal(m) / 100),
    "type": "type",
    "mode": "mode",
    "abonnement associé": "subscription_id",
    "adresse1": Coalesce(T.meta["location_address1"], default=None),
    "adresse2": Coalesce(T.meta["location_address1"], default=None),
    "code postal": Coalesce(T.meta["location_zip"], default=None),
    "ville": Coalesce(T.meta["location_city"], default=None),
    "pays": Coalesce(T.meta["location_country"], default=None),
}


STATUS_MAPPING = {
    f[len("STATUS_") :]: getattr(Payment, f)
    for f in dir(Payment)