Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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))
Exemple #4
0
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))