Esempio n. 1
0
def upload_devices(request):
    """
    User uploads device DB as tab-delimited CSV file
    SN  USERNAME    PASSWORD    NOTES
    """
    gsx_account = None
    form = DeviceUploadForm()

    if request.method == "POST":
        form = DeviceUploadForm(request.POST, request.FILES)

        if form.is_valid():
            i = 0
            df = form.cleaned_data['datafile'].read()

            if form.cleaned_data.get('do_warranty_check'):
                gsx_account = GsxAccount.default(request.user)

            for l in df.split("\r"):
                l = l.decode("latin-1").encode("utf-8")
                row = l.strip().split("\t")

                if gsx_account:
                    try:
                        device = Device.from_gsx(row[0])
                    except Exception, e:
                        messages.error(request, e)
                        break
                else:
                    device = Device.objects.get_or_create(sn=row[0])[0]

                try:
                    device.username = row[1]
                    device.password = row[2]
                    device.notes = row[3]
                except IndexError:
                    pass

                device.save()
                i += 1

                if form.cleaned_data.get("customer"):
                    customer = form.cleaned_data['customer']
                    customer.devices.add(device)

            messages.success(request, _("%d devices imported") % i)

            return redirect(index)
Esempio n. 2
0
def upload_devices(request):
    """
    User uploads device DB as tab-delimited CSV file
    SN  USERNAME    PASSWORD    NOTES
    """
    gsx_account = None
    form = DeviceUploadForm()
    title = _('Upload devices')

    if request.GET.get('c'):
        customer = Customer.objects.get(pk=request.GET['c'])
        title = _('Upload devices for %s') % customer.name
        form.fields['customer'].initial = request.GET['c']

    if request.method == "POST":
        form = DeviceUploadForm(request.POST, request.FILES)

        if form.is_valid():
            import django_excel as excel
            import pyexcel.ext.xls  # import it to handle xls file
            import pyexcel.ext.xlsx  # import it to handle xlsx file

            counter, errors = 0, 0
            datafile = form.cleaned_data['datafile']
            sheet = datafile.get_sheet()

            if sheet.row[0][0] == 'SN':
                del (sheet.row[0])  # skip header row

            if form.cleaned_data.get('do_warranty_check'):
                gsx_account = GsxAccount.default(request.user)

            for row in sheet:
                if not len(row[0]):
                    continue  # skip empty rows

                if gsx_account:
                    try:
                        device = Device.from_gsx(row[0])
                    except Exception as e:
                        messages.error(request, e)
                        break
                else:
                    device = Device.objects.get_or_create(sn=row[0])[0]

                device.username = row[1]
                device.password = row[2]
                device.notes = row[3]

                device.save()
                counter += 1

                if form.cleaned_data.get("customer"):
                    cid = form.cleaned_data['customer']
                    customer = Customer.objects.get(pk=cid)
                    customer.devices.add(device)

            messages.success(request, _("%d devices imported") % counter)

            return redirect(index)

    data = {'form': form, 'action': request.path, 'title': title}
    return render(request, "devices/upload_devices.html", data)
Esempio n. 3
0
File: device.py Progetto: fpsw/Servo
def upload_devices(request):
    """
    User uploads device DB as tab-delimited CSV file
    SN  USERNAME    PASSWORD    NOTES
    """
    gsx_account = None
    form = DeviceUploadForm()
    title = _('Upload devices')

    if request.GET.get('c'):
        customer = Customer.objects.get(pk=request.GET['c'])
        title = _('Upload devices for %s') % customer.name
        form.fields['customer'].initial = request.GET['c']

    if request.method == "POST":
        form = DeviceUploadForm(request.POST, request.FILES)

        if form.is_valid():
            import django_excel as excel
            import pyexcel.ext.xls # import it to handle xls file
            import pyexcel.ext.xlsx # import it to handle xlsx file

            counter, errors = 0, 0
            datafile = form.cleaned_data['datafile']
            sheet = datafile.get_sheet()

            if sheet.row[0][0] == 'SN':
                del(sheet.row[0]) # skip header row

            if form.cleaned_data.get('do_warranty_check'):
                gsx_account = GsxAccount.default(request.user)

            for row in sheet:
                if not len(row[0]):
                    continue # skip empty rows

                if gsx_account:
                    try:
                        device = Device.from_gsx(row[0])
                    except Exception as e:
                        messages.error(request, e)
                        break
                else:
                    device = Device.objects.get_or_create(sn=row[0])[0]

                device.username = row[1]
                device.password = row[2]
                device.notes = row[3]

                device.save()
                counter += 1

                if form.cleaned_data.get("customer"):
                    cid = form.cleaned_data['customer']
                    customer = Customer.objects.get(pk=cid)
                    customer.devices.add(device)

            messages.success(request, _("%d devices imported") % counter)

            return redirect(index)

    data = {'form': form, 'action': request.path, 'title': title}
    return render(request, "devices/upload_devices.html", data)