summaryrefslogtreecommitdiffstats
path: root/inventory
diff options
context:
space:
mode:
authorkeroth <keroth@janssen-jan.de>2015-05-10 00:10:26 +0200
committerkeroth <keroth@janssen-jan.de>2015-05-10 00:10:26 +0200
commitc7fd8c443357879aab51134e6679ace45baec103 (patch)
tree29b8e55b352ea8b22207cc6bb8b9ebb8d97745a9 /inventory
parentb518d7011419a3c9e5d2352eab21020cb6031d29 (diff)
downloadktt-inventory-system-c7fd8c443357879aab51134e6679ace45baec103.tar.bz2
Added file support
Diffstat (limited to 'inventory')
-rw-r--r--inventory/forms.py9
-rw-r--r--inventory/models.py11
-rw-r--r--inventory/views.py63
3 files changed, 83 insertions, 0 deletions
diff --git a/inventory/forms.py b/inventory/forms.py
new file mode 100644
index 0000000..264f8cb
--- /dev/null
+++ b/inventory/forms.py
@@ -0,0 +1,9 @@
+from django import forms
+
+
+class UploadFileForm(forms.Form):
+
+ types = (('1', 'Parent Tree'), ('2', 'Regal'))
+
+ file = forms.FileField()
+ type = forms.ChoiceField(widget=forms.RadioSelect, choices=types) \ No newline at end of file
diff --git a/inventory/models.py b/inventory/models.py
index 6dfd7f6..f9069df 100644
--- a/inventory/models.py
+++ b/inventory/models.py
@@ -98,6 +98,17 @@ class Item(models.Model):
return true
return false
+ def add_shelf(self, code):
+
+ self.name = 'Regalborte'
+ self.description = 'Borte im Hochregal \n Reihe: ' + code[1] + 'Regal: ' + code[2]
+ self.business_area = BusinessArea.objects.get(name='ideell')
+ self.category = Category.objects.get(name='Inventar')
+ self.parent = Barcode.objects.get(code='H0000')
+ self.inUse = 'X'
+ self.tag = Tag.objects.get(name='Regale & Storage')
+ self.save()
+
def __unicode__(self):
return _(u"%(name)s (codes: %(barcodes)s)") % {'name': self.name, 'barcodes': self.barcodes()}
diff --git a/inventory/views.py b/inventory/views.py
index 77630d3..263e3ec 100644
--- a/inventory/views.py
+++ b/inventory/views.py
@@ -1,14 +1,21 @@
from django.shortcuts import get_object_or_404
from django.utils.translation import ugettext_lazy as _
from django.shortcuts import render_to_response
+from django.shortcuts import render
from django.http import HttpResponse
from django.db.models import Q
import models
from django.core.mail import mail_admins
+from forms import UploadFileForm
+from django.core.exceptions import ObjectDoesNotExist
+from models import Barcode
+
+
def home(request):
return render_to_response('home.html')
+
def item(request, selectedid):
p = get_object_or_404(models.Barcode, pk=selectedid.upper())
@@ -58,6 +65,7 @@ def item(request, selectedid):
}
return render_to_response('item.html', parameters)
+
def search(request, term):
results = models.Item.objects.filter(Q(name__contains = term) | Q(description__contains = term))
@@ -66,6 +74,7 @@ def search(request, term):
"results": results
})
+
def graph(request):
items = models.Item.objects.all()
@@ -74,6 +83,60 @@ def graph(request):
return result
+
+def upload(request):
+ #if request.method == 'POST':
+ form = UploadFileForm(request.POST, request.FILES)
+ if form.is_valid():
+ codefile = request.FILES['file']
+ data = codefile.read().splitlines()
+
+ if request.POST['type'] == '1':
+ parent = ''
+ for code in data:
+ if code != 'NEWPARENT':
+ if parent == '':
+ p = get_object_or_404(models.Barcode, pk=code.upper())
+ parent = code
+ else:
+ i = get_object_or_404(models.Barcode, pk=code.upper())
+ i.item.parent = p.item
+ i.item.save()
+ else:
+ parent = ''
+ elif request.POST['type'] == '2':
+ print('Regal')
+ index = 0
+ error = 0
+ business_area = models.BusinessArea.objects.get(name='ideell')
+ category = models.Category.objects.get(name='Inventar')
+ parent = models.Barcode.objects.get(code='H0000')
+ tag = models.Tag.objects.get(name='Regale & Storage')
+
+ for code in data:
+ if code[0] == 'H' and len(code) == 5:
+ try:
+ b = Barcode.objects.get(code=code.upper())
+ error += 1
+ data[index] = code + ' existiert bereits'
+ except ObjectDoesNotExist:
+ print('Yay!')
+ description = 'Borte im Hochregal \nReihe: ' + code[1] + '\nRegal: ' + code[2]
+ i = models.Item(name='Regalborte', description=description, business_area=business_area, category=category, parent=parent.item)
+ i.save()
+ barcode = Barcode(code=code, item=i)
+ barcode.save()
+ print(i)
+ else:
+ data[index] = code + ' ist nicht im richtigen Format'
+ error += 1
+ index += 1
+ return render(request, 'upload.html', {'form': form, 'data': data})
+ else:
+ form = UploadFileForm()
+ return render(request, 'upload.html', {'form': form})
+
+
def stats(request):
return render_to_response('stats.html', {
"number_of_codes": models.Barcode.objects.count(),