def get_partner_wrapper(test_partner): """ Returns the appropriate partner wrapper given the partner name """ for partner, class_str in settings.OSCAR_PARTNER_WRAPPERS.items(): if partner == test_partner: bits = class_str.split('.') class_name = bits.pop() module_str = '.'.join(bits) module = django_import_module(module_str) return getattr(module, class_name)() return DefaultWrapper()
def _load_partner_wrappers(): # Prime cache of partner wrapper dict global partner_wrappers partner_wrappers = {} Partner = get_model('partner', 'Partner') for code, class_str in settings.OSCAR_PARTNER_WRAPPERS.items(): try: partner = Partner.objects.get(code=code) except Partner.DoesNotExist: continue else: module_path, klass = class_str.rsplit('.', 1) module = django_import_module(module_path) partner_wrappers[partner.id] = getattr(module, klass)()
from django.db import models from django.utils.translation import ugettext_lazy as _ from django.utils.importlib import import_module as django_import_module from oscar.core.loading import import_module import_module('partner.wrappers', ['DefaultWrapper'], locals()) # Cache the partners for quicklookups default_wrapper = DefaultWrapper() partner_wrappers = {} for partner, class_str in settings.OSCAR_PARTNER_WRAPPERS.items(): bits = class_str.split('.') class_name = bits.pop() module_str = '.'.join(bits) module = django_import_module(module_str) partner_wrappers[partner] = getattr(module, class_name)() def get_partner_wrapper(partner_name): """ Returns the appropriate partner wrapper given the partner name """ return partner_wrappers.get(partner_name, default_wrapper) class AbstractPartner(models.Model): """ Fulfillment partner """ name = models.CharField(max_length=128, unique=True)
from django.db import models from django.utils.translation import ugettext_lazy as _ from django.utils.importlib import import_module as django_import_module from oscar.core.loading import get_class from oscar.apps.partner.exceptions import InvalidStockAdjustment DefaultWrapper = get_class('partner.wrappers', 'DefaultWrapper') # Cache the partners for quicklookups default_wrapper = DefaultWrapper() partner_wrappers = {} for partner, class_str in settings.OSCAR_PARTNER_WRAPPERS.items(): bits = class_str.split('.') class_name = bits.pop() module_str = '.'.join(bits) module = django_import_module(module_str) partner_wrappers[partner] = getattr(module, class_name)() def get_partner_wrapper(partner_name): """ Returns the appropriate partner wrapper given the partner name """ return partner_wrappers.get(partner_name, default_wrapper) class AbstractPartner(models.Model): """ Fulfillment partner """ name = models.CharField(max_length=128, unique=True)