Source code for shuup.admin.modules.contacts.sections

from django.utils.translation import gettext_lazy as _

from shuup.admin.base import Section
from shuup.core.models import PersonContact
from shuup.utils.django_compat import force_text


[docs] class BasicInfoContactSection(Section): identifier = "contact_basic_info" name = _("Basic Information") icon = "fa-info-circle" template = "shuup/admin/contacts/_contact_basic_info.jinja" order = 1
[docs] @classmethod def visible_for_object(cls, contact, request=None): return True
[docs] @classmethod def get_context_data(cls, contact, request=None): context = {} context["groups"] = sorted(contact.groups.all_except_defaults(), key=(lambda x: force_text(x))) context["shops"] = sorted(contact.shops.all(), key=(lambda x: force_text(x))) context["companies"] = [] if isinstance(contact, PersonContact): context["companies"] = sorted(contact.company_memberships.all(), key=(lambda x: force_text(x))) return context
[docs] class AddressesContactSection(Section): identifier = "contact_addresses" name = _("Addresses") icon = "fa-map-marker" template = "shuup/admin/contacts/_contact_addresses.jinja" order = 2
[docs] @classmethod def visible_for_object(cls, contact, request=None): return contact.default_shipping_address_id or contact.default_billing_address_id
[docs] @classmethod def get_context_data(cls, contact, request=None): return None
[docs] class OrdersContactSection(Section): identifier = "contact_orders" name = _("Orders") icon = "fa-inbox" template = "shuup/admin/contacts/_contact_orders.jinja" order = 3
[docs] @classmethod def visible_for_object(cls, contact, request=None): return bool(contact.default_shipping_address_id or contact.default_billing_address_id)
[docs] @classmethod def get_context_data(cls, contact, request=None): return contact.customer_orders.valid().order_by("-id")
[docs] class MembersContactSection(Section): identifier = "contact_members" name = _("Members") icon = "fa-user" template = "shuup/admin/contacts/_contact_members.jinja" order = 4
[docs] @classmethod def visible_for_object(cls, contact, request=None): return hasattr(contact, "members")
[docs] @classmethod def get_context_data(cls, contact, request=None): if contact.members: return contact.members.all() return None