def post_save(sender, instance, created, **kwargs): """ After save create order instance for sending instance for orderable models. """ # Only create order model instances for # those modules specified in settings. model_label = '.'.join([sender._meta.app_label, sender._meta.object_name]) labels = resolve_labels(model_label) order_field_names = is_orderable(model_label) if order_field_names: orderitem_set = getattr(instance, resolve_order_item_related_set_name(labels)) if not orderitem_set.all(): fields = {} for order_field_name in order_field_names: fields[order_field_name] = 1 orderitem_set.model.objects.create(item=instance, **fields) sanitize_order(orderitem_set.model)
def post_save(sender, instance, created, **kwargs): """ After save create order instance for sending instance for orderable models. """ # Only create order model instances for # those modules specified in settings. model_label = '.'.join([sender._meta.app_label, sender._meta.object_name]) labels = resolve_labels(model_label) order_field_names = is_orderable(model_label) if order_field_names: orderitem_set = getattr( instance, resolve_order_item_related_set_name(labels) ) if not orderitem_set.all(): fields = {} for order_field_name in order_field_names: fields[order_field_name] = 1 orderitem_set.model.objects.create(item=instance, **fields) sanitize_order(orderitem_set.model)
def handle(self, *args, **options): label = args[0] order_fields = is_orderable(label) if order_fields: create_order_objects(get_model(*label.split('.')), order_fields)
from django.contrib import admin from django.http import HttpResponseRedirect import object_tools from order.utils import is_orderable class Order(object_tools.ObjectTool): name = 'order' label = 'Order' def view(self, request, extra_context=None): return HttpResponseRedirect('/admin/order/%sorderitem/' % \ extra_context['opts'].object_name.lower()) for model, model_admin in admin.site._registry.items(): label = '.'.join([model._meta.app_label, model._meta.object_name]) if is_orderable(label): object_tools.tools.register(Order, model)
def post_syncdb(sender, created_models, **kwargs): for model in created_models: label = '.'.join([model._meta.app_label, model._meta.object_name]) order_fields = is_orderable(label) if order_fields: create_order_objects(model, order_fields)