def new_count(request): recent_counts = InventoryCount.objects.all().order_by('-count_timestamp')[:10] if request.method == 'POST': inventoryform = InventoryForm(request.POST) if inventoryform.is_valid(): part_number = inventoryform.cleaned_data['part'].strip().upper() location = inventoryform.cleaned_data['location'].strip().upper() count = inventoryform.cleaned_data['inventory_count'] complete = inventoryform.cleaned_data['location_complete'] part = get_object_or_404(Part, part_number=part_number) location = get_object_or_404(InventoryLocation, location_code=location) inv_count, _created = InventoryCount.objects.get_or_create(part=part, location=location) if _created: inv_count.inventory_count = count inv_count.scans = 1 else: inv_count.inventory_count += count inv_count.scans += 1 inv_count.counter = request.user inv_count.count_complete=complete inv_count.save() messages.success(request, 'Inventory Count Added') return HttpResponseRedirect(reverse('inventory.views.new_count')) else: inventoryform = InventoryForm() return render_to_response('inventory/new_count.html', { 'inventoryform': inventoryform, 'recent_counts': recent_counts, }, context_instance=RequestContext(request))
def update(request,id): inventory=Inventory.objects.get(id=id) form=InventoryForm(request.POST,instance=inventory) if form.is_valid(): form.save() return redirect("/show") return render(request,'edit.html',{'inventory':inventory})
def item_detail(request, inventory_id): inventoryentry = get_object_or_404(Inventory, pk=inventory_id) form = InventoryForm(request.POST or None, instance=inventoryentry) if form.is_valid(): form.save() context = { 'inventoryentry': inventoryentry, 'form': form, } return render(request, 'inventory/item_detail.html', context)
def addNewProduct(request): #(add new product) print(request.method) form = InventoryForm() if request.method == 'POST': form = InventoryForm(request.POST, request.FILES) if form.is_valid(): print("form") information = form.save(commit=False) information.save() render(request, 'inventory/create.html') else: form = InventoryForm() context = { 'form': form, } return render(request, 'inventory/add_new_product.html.html', context=context) else: return render(request, 'inventory/add_new_product.html', {'form': form})
def invReq(request): if request.method=="POST": form=InventoryForm(request.POST) if form.is_valid(): form.save() return redirect('/show') else: form=InventoryForm() return render(request,'index.html',{'form':form})
def edit_item(request, item_id): """ Function used to edit item in the inventory :param request: request received from web server :param item_id: current item id :return: renders home if success """ try: instance = Inventory.objects.get(id=item_id) is_store_manager = request.user.groups.filter( name='Store Manager').exists() approval_form = ApprovalReasonForm(request.POST or None) form = InventoryForm(request.POST or None, instance=instance) if request.method == 'POST': if form.is_valid(): inventory = form.save(commit=False) inventory.created_by = request.user if not is_store_manager and approval_form.is_valid(): approval = ApprovalRequests( requested_user=request.user, inventory=instance, reason=approval_form.cleaned_data.get('reason', '')) approval.save() inventory.status = Inventory.PENDING else: inventory.status = Inventory.APPROVED inventory.save() return HttpResponseRedirect(reverse('home')) return render( request, 'inventory.html', { 'form': form, 'approval_form': approval_form, 'item': instance, 'is_store_manager': is_store_manager }) except Exception as e: return HttpResponse("Something went wrong")
def run_form(self, *, new_color=None, new_qty=None, removed=None, initial_color=None, initial_qty=None): form_data = {} if new_color: form_data['color'] = new_color.pk if new_qty is not None: form_data['qty'] = new_qty form = InventoryForm(userpart=self.user_part, data=form_data) if initial_color: if initial_qty is None: initial_qty = self.default_qty form.initial_data = {'color': initial_color, 'qty': initial_qty} form.full_clean() if removed: form.cleaned_data['DELETE'] = True return form
def add_inventory(request): """ Adds a piece of inventory. """ LocationFormSet = modelformset_factory(LocationAmount, fields = ('location', 'amount'), extra=3, formset=RequiredFormSet) KeywordFormSet = modelformset_factory(KeywordValue, fields = ('keyword', 'value'), extra = Keyword.objects.count()) if request.method == 'POST': inventory_form = InventoryForm(request.POST, prefix="inv") location_formset = LocationFormSet(request.POST, prefix = "loc") kw_formset = KeywordFormSet(request.POST, prefix="kw") if inventory_form.is_valid() and location_formset.is_valid() \ and kw_formset.is_valid(): # Is there an easier way to do this with an Inventory ModelForm? part_str = inventory_form.cleaned_data['part'] color = inventory_form.cleaned_data['color'] part = Part.objects.get(part_id__iexact=part_str) try: partinstance = PartInstance.objects.get(part=part, color=color) except PartInstance.DoesNotExist: print "PartInstance not exist, creating" partinstance = PartInstance(color=color, part=part, user_override=True) partinstance.save() inventory = Inventory(partinstance = partinstance) inventory.save() def add_inventory_to_formset(i): i.inventory = inventory i.save() instances = location_formset.save(commit = False) map(add_inventory_to_formset, instances) previous_keywords = [] def process_kw_formset(i): # Add the inventory to each item and save it i.inventory = inventory i.save() # Save the keyword and value for populating next time d = {'keyword': i.keyword.pk, 'value': i.value} previous_keywords.append(d) instances = kw_formset.save(commit = False) map(process_kw_formset, instances) request.session['previous_keywords'] = previous_keywords if 'add_another' in request.POST: return redirect(add_inventory) else: return redirect(index) else: inventory_form = InventoryForm(prefix="inv") location_formset = LocationFormSet(prefix = "loc", queryset = LocationAmount.objects.none()) if 'previous_keywords' in request.session: # Use keywords from previous form, if they exist previous_keywords = request.session['previous_keywords'] del request.session['previous_keywords'] kw_formset = KeywordFormSet(prefix="kw", queryset=Keyword.objects.none(), initial=previous_keywords) else: kw_formset = KeywordFormSet(prefix="kw", queryset=Keyword.objects.none()) return render(request, 'add_inventory.html', {'inventory_form': inventory_form, 'location_formset': location_formset, 'kw_formset': kw_formset, })