def category_name(id=None): """Return the name of the category or None""" from inventory.models import Category rec = Category(g.db).select_one(where='id = {}'.format(cleanRecordID(id))) if rec: return rec.name return None
def create_category(request): category = Category() if request.POST: form = CategoryForm(data=request.POST) if form.is_valid(): category = form.save(commit=False) category.save() return redirect('/inventory/categories/') else: form = CategoryForm(instance=category) if request.is_ajax(): base_template = 'modal.html' else: base_template = 'inventory_base.html' return render(request, 'inventory_category_create_form.html', { 'form': form, 'base_template': base_template, })
def edit(id=None): setExits() g.title = "Edit {} Record".format(g.title) category = Category(g.db) if request.form: id = request.form.get('id', None) id = cleanRecordID(id) if id >= 0 and not request.form: if id == 0: rec = category.new() else: rec = category.get(id) if rec: return render_template('category_edit.html', rec=rec) else: flash('Record not Found') if request.form: if not validate_form(): return render_template('category_edit.html', rec=request.form) if id == 0: rec = category.new() else: rec = category.get(id) if rec: category.update(rec, request.form) category.save(rec) try: g.db.commit() except Exception as e: g.db.rollback() flash( printException('Error attempting to save Category record', str(e))) return redirect(g.listURL) else: flash('Record not Found') return redirect(g.listURL)
def display(): setExits() g.title = "{} List".format(g.title) recs = Category(g.db).select() return render_template( 'category_list.html', recs=recs, )
def delete(id=None): setExits() if id == None: id = request.form.get('id', request.args.get('id', -1)) id = cleanRecordID(id) if id <= 0: flash("That is not a valid record ID") return redirect(g.listURL) rec = Category(g.db).get(id) if not rec: flash("Record not found") else: Category(g.db).delete(rec.id) g.db.commit() flash("Record Deleted") return redirect(g.listURL)
def addcategory(request): # Create new instance of Category object message = "" if request.method == 'POST': _category = Category() _category = CategoryForm(request.POST, instance=_category) new_category = _category.save() message = "%s category successfully added" % new_category #return HttpResponse(message) #add functionality to print successful message after save #Cater for when no post has been made from the form args = {} #set args to an empty dictionary args.update(csrf(request)) args['message'] = message return render_to_response('inventory/addcategory.html', args)
def addCat(request): if request.method == 'POST': form = CategoryForm(request.POST) if form.is_valid(): cd = form.cleaned_data newCat = Category() newCat.name = cd.get('name') newCat.description = cd.get('description') newCat.save() if request.is_ajax(): categories = Category.objects.all() context = {'categories': categories,} return render_to_response('inventory/getCats.html', context, context_instance=RequestContext(request)) else: return HttpResponseRedirect('/inventory/') message = "Oops, it broke! You should enter in something valid." form = CategoryForm() categories = Category.objects.all() context = {'message': message, 'form': form, 'categories': categories, } return render_to_response('inventory/index.html', context, context_instance=RequestContext(request))
def addCat(request): if request.method == 'POST': form = CategoryForm(request.POST) if form.is_valid(): cd = form.cleaned_data newCat = Category() newCat.name = cd.get('name') newCat.description = cd.get('description') newCat.save() if request.is_ajax(): categories = Category.objects.all() context = { 'categories': categories, } return render_to_response( 'inventory/getCats.html', context, context_instance=RequestContext(request)) else: return HttpResponseRedirect('/inventory/') message = "Oops, it broke! You should enter in something valid." form = CategoryForm() categories = Category.objects.all() context = { 'message': message, 'form': form, 'categories': categories, } return render_to_response('inventory/index.html', context, context_instance=RequestContext(request))
def move_node_ajax(request): node_id = request.POST['node_id'] parent_id = request.POST['parent_id'] try: node_set = Category.objects.get(id=int(node_id.split("_")[1])) parent_set = Category.objects.get(id=int(parent_id.split("_")[1])) category = Category() category._tree_manager.move_node(node_set, parent_set) except: return False return True
def import_data(filespec): db = Database('instance/database.sqlite').connect() category = Category(db) uom = Uom(db) item = Item(db) trx = Transaction(db) with open(filespec, newline='') as csvfile: reader = csv.DictReader(csvfile) for row in reader: print('Name: {}, Category: {}'.format(row['item_name'], row['category_name'])) #import pdb;pdb.set_trace() #create a Category if not exists cats = category.select_one( where='name = "{}"'.format(row['category_name'])) if not cats: cats = category.new() cats.name = row["category_name"] category.save(cats) cat_id = cats.id #create UOM if not exists uom_name = row['uom'].strip() if uom_name == '': uom_name = "Ea." uoms = uom.select_one(where='name = "{}"'.format(uom_name)) if not uoms: uoms = uom.new() uoms.name = uom_name uom.save(uoms) items = item.select_one( where='name = "{}"'.format(row['item_name'], )) if not items: items = item.new() items.name = row['item_name'] items.uom = uom_name items.cat_id = cat_id item.save(items) # Create a transaction record trxs = trx.new() trx.update(trxs, row) trxs.created = datetime.strptime(row['created'], '%Y-%m-%d') trxs.item_id = items.id trx.save(trxs) try: db.commit() except Exception as e: db.rollback() print(str(e))
def edit(id=None): setExits() g.title = "Edit {} Record".format(g.title) item = Item(g.db) transactionList = None #import pdb;pdb.set_trace() if request.form: id = request.form.get('id', None) id = cleanRecordID(id) if id < 0: flash("Invalid Record ID") return redirect(g.listURL) categories = Category(g.db).select() uoms = Uom(g.db).select() if id >= 0 and not request.form: if id == 0: rec = item.new() # allow creation of new properties item.save(rec) # need an id for transactions g.db.commit() # have to commit this to protect the ID we just got # This name changes behavure of the Cancel link in the edit form g.cancelURL = url_for('.cancel') + "{}/".format(rec.id) else: rec = item.get(id) if not rec: flash('Record not Found') return redirect(g.listURL) #import pdb;pdb.set_trace() if request.form: rec = item.get(id) if rec: item.update(rec, request.form) if validate_form(): item.save(rec) try: g.db.commit() return redirect(g.listURL) except Exception as e: g.db.rollback() flash( printException('Error attempting to save Item record', str(e))) return redirect(g.listURL) else: pass # There are imput errors else: flash('Record not Found') return redirect(g.listURL) transactionList = get_trx_list_for_item(rec.id) transferList = get_transfer_list_for_item(rec.id) qoh_list = get_qoh_by_warehouse(rec.id) on_hand = item.stock_on_hand(id) return render_template('item_edit.html', rec=rec, categories=categories, uoms=uoms, transactionList=transactionList, transferList=transferList, qoh_list=qoh_list, on_hand=on_hand)
def seed(request): seeder = Seed.seeder() # Las categorías iniciales cat = Category() cat.name = 'Alimentos' cat.color = 'ff695b' cat.save() cat = Category() cat.name = 'Bebidas' cat.color = '60a8ff' cat.save() print('Seeded categories') seeder.add_entity(Item, 10, { 'name': lambda x: seeder.faker.word() + ' ' + seeder.faker.word(), 'code': lambda x: None, 'provider_id': lambda x: None, 'lead_time': lambda x: None, 'reorder_point': lambda x: None, 'price': lambda x: random.randint(10, 500), 'category_id': lambda x: Category.objects.order_by('?').first(), }) seeder.execute() print('Seeded items') # Crear 20 documentos para cada mes del año for i in range(0, 12): seeder.add_entity(Document, 20, { 'date': lambda x: datetime.date(2019, random.randint(1, 12), random.randint(1, 28)), }) seeder.execute() print('Seeded documents') # Crear 5 movimientos para cada documento for doc in Document.objects.all(): print(doc.id) # seeder.add_entity(Movement, 5, { # 'document_id': lambda x: doc, # 'item_id': lambda x: Item.objects.order_by('?').first(), # 'quantity_in': lambda x: random.randint(-5, 5), # }) for i in range(0, 5): mov = Movement() mov.document_id = doc mov.item_id = Item.objects.order_by('?').first() mov.quantity_in = random.randint(-5, 5) mov.save() #seeder.execute() print('Seeded movements') return HttpResponse("Seeded succesfully")