Example #1
0
def index(request, template):
    user = request.user
    devices = Device.objects.all()
    assets = Assets.objects.all()
    pag_list = []

    if user.get_profile().asset_edit:
        pag_list += assets
        if user.get_profile().parts_edit:
            pag_list += devices

    elif user.get_profile().parts_edit:
        pag_list += devices

    cus_form = CustomerForm()
    bom_form = BomForm()
    device_form = DeviceForm()
    asset_form = AssetsFrom()

    if request.method == "POST":
        if request.POST['subname'] == 'add_device':
            try:
                name = request.POST.getlist('bom_sns')
                if len(list(set(name))) == 1 and list(set(name))[0] == '':
                    #全为空
                    pass
                else:
                    new_device = Device()
                    dev = {}
                    for i in name:
                        try:
                            bom = Bom.objects.get(bom_sn=i)
                            if bom.bom_name == u'ser' and dev.has_key(u'ser'):
                                pass
                            else:
                                dev[bom.bom_name] = (bom, bom.bom_sn)

                        except Exception,e:
                            pass
                    if dev.has_key('ser'):
                        new_device.device_sn = dev['ser'][1]
                        bom = Bom.objects.get(bom_sn=dev['ser'][1])
                        bom.bom_status = 'inuse'
                        bom.save()
                        new_device.save()
                        for key in dev:
                            if key != 'ser':
                                new_device.device_boms.add(dev[key][0])
                                dev[key][0].bom_status = 'inuse'
                                dev[key][0].save()

                        new_device.save()
                        return HttpResponseRedirect(reverse('index'))
            except:
                pass
        elif request.POST['subname'] == 'add_cus':
            cus_form = CustomerForm(request.POST)
            if cus_form.is_valid():
                cus_form.save()
                return HttpResponseRedirect(reverse('index'))
            else:
                err_msg = 'error'
        elif request.POST['subname'] == 'add_asset':
            asset_form = AssetsFrom(request.POST)
            if asset_form.is_valid():
                asset_form.save()
                return HttpResponseRedirect(reverse('index'))
        else:
            bom_form = BomForm(request.POST)
            if bom_form.is_valid():
                bom_form.save()
                return HttpResponseRedirect(reverse('index'))
            else:
                err_msg = 'error'

    page = request.GET.get('page', '')
    paginator = Paginator(pag_list,'20')
    try:
        contacts = paginator.page(page)
    except PageNotAnInteger:
        contacts = paginator.page('1')
    except EmptyPage:
        contacts = paginator.page(paginator.num_pages)

    return TemplateResponse(request, template,{'cus_form':cus_form,
                                               'bom_form':bom_form,
                                               'devices':devices,
                                               'asset_form':asset_form,
                                               'contacts':contacts,
                                               'pages':paginator})