def set_attributes(obj, obj_type, attrs, defaults=None): from tiger.core.models import Upgrade, Variant, SideDishGroup, SideDish prices = attrs.get('prices') if prices: if defaults.get('prices'): obj.variant_set.all().delete() for p in prices: v = Variant(description=p['label'], price=Decimal(str(p.get('price') or '0'))) setattr(v, obj_type, obj) v.save() extras = attrs.get('extras') if extras: if defaults.get('extras'): obj.upgrade_set.all().delete() for x in extras: upg = Upgrade(name=p['label'], price=Decimal(str(p.get('price') or '0'))) setattr(upg, obj_type, obj) upg.save() choice_sets = attrs.get('choice_sets') if choice_sets: if defaults.get('choice_sets'): obj.sidedishgroup_set.all().delete() for cs in choice_sets: group = SideDishGroup() setattr(group, obj_type, obj) group.save() for c in cs['choices']: SideDish.objects.create(name=c['label'], price=Decimal(str(c.get('price') or '0')), group=group)
def set_attributes(obj, obj_type, attrs, defaults=None): from tiger.core.models import Upgrade, Variant, SideDishGroup, SideDish prices = attrs.get('prices') if prices: if defaults.get('prices'): obj.variant_set.all().delete() for p in prices: v = Variant(description=p['label'], price=Decimal(str(p.get('price') or '0'))) setattr(v, obj_type, obj) v.save() extras = attrs.get('extras') if extras: if defaults.get('extras'): obj.upgrade_set.all().delete() for x in extras: upg = Upgrade(name=p['label'], price=Decimal(str(p.get('price') or '0'))) setattr(upg, obj_type, obj) upg.save() choice_sets = attrs.get('choice_sets') if choice_sets: if defaults.get('choice_sets'): obj.sidedishgroup_set.all().delete() for cs in choice_sets: group = SideDishGroup() setattr(group, obj_type, obj) group.save() for c in cs['choices']: SideDish.objects.create(name=c['label'], price=Decimal( str(c.get('price') or '0')), group=group)
def add_sidegroup(request, object_type, object_id): if not request.is_ajax() or request.method != 'POST': raise Http404 result = {} try: model = get_model('core', object_type) instance = get_object_or_404(model, id=object_id) group = SideDishGroup() setattr(group, object_type, instance) group.save() result['success'] = True result['new_row'] = render_to_string('dashboard/menu/includes/group_row.html', { 'group': group, 'MEDIA_URL': settings.MEDIA_URL }) result['add_side_url'] = reverse('add_side', args=[group.id]) except: result['success'] = False return HttpResponse(json.dumps(result))
def add_sidegroup(request, object_type, object_id): if not request.is_ajax() or request.method != 'POST': raise Http404 result = {} try: model = get_model('core', object_type) instance = get_object_or_404(model, id=object_id) group = SideDishGroup() setattr(group, object_type, instance) group.save() result['success'] = True result['new_row'] = render_to_string( 'dashboard/menu/includes/group_row.html', { 'group': group, 'MEDIA_URL': settings.MEDIA_URL }) result['add_side_url'] = reverse('add_side', args=[group.id]) except: result['success'] = False return HttpResponse(json.dumps(result))