"Added: Add componant feature"

This commit is contained in:
2017-10-24 21:42:57 +02:00
parent 6cf5daf2a1
commit 1e1ead5888
9 changed files with 313 additions and 117 deletions

View File

@@ -2,10 +2,12 @@
# -*- coding: utf-8
import math
import psycopg2
from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash
from flask_sqlalchemy import SQLAlchemy
from functools import wraps
########################################################################
# App settings
########################################################################
@@ -66,8 +68,11 @@ def resume_session(func):
order = 'asc'
order_refresh = 0
c_empty = ''
c_provider = 1
c_provider = 0
c_count = 0
offset_reset = ['c_reference', 'c_designation', 'c_place', 'c_provider']
if not 'session' in session:
session['session'] = ''
if not 'c_limit' in session:
session['c_limit'] = limit
if not 'c_offest' in session:
@@ -90,6 +95,8 @@ def resume_session(func):
session['c_place'] = c_empty
if not 'c_provider' in session:
session['c_provider'] = c_provider
if not 'c_count' in session:
session['c_count'] = c_count
# Cookies/session sync
for key in request.cookies:
old = str(session[key])
@@ -129,11 +136,11 @@ def authenticate():
# Componants
########################################################################
## Main ##
@app.route('/componants', methods=['GET', 'POST'])
@resume_session
def get_componants():
providers = Stock_providers.query.order_by(Stock_providers.name).all()
def componants():
""" Main page """
providers = Stock_providers.query.order_by(Stock_providers.id).all()
return render_template('componants.html',
providers=providers,
reference=session['c_reference'],
@@ -141,9 +148,9 @@ def get_componants():
place=session['c_place'],
provider_id=session['c_provider'])
## Componant edition ##
@app.route('/componants/<componant_id>')
def get_componant(componant_id):
""" Edit componant """
try:
componant_id = int(componant_id)
except ValueError as e:
@@ -156,50 +163,70 @@ def get_componant(componant_id):
return render_template('componant.html', componant=componant, providers=providers, provider=provider)
return render_template('error.html'), 404
## Componant update ##
@app.route('/componants/update/<componant_id>', methods=['POST'])
def update_componant(componant_id):
""" Update componant field"""
field = request.form['field']
value = request.form['value']
if field and value:
try:
componant = Stock_componants.query.filter_by(id=componant_id).first()
setattr(componant, field, value)
db.session.commit()
commit = db.session.commit()
if commit == None:
return 'OK'
except Exception as e:
return 'KO'
return 'OK'
pass
return 'KO'
## Componant deletion ##
@app.route('/componants/delete/<componant_id>')
def delete_componant(componant_id):
""" Delete componant """
try:
componant_id = int(componant_id)
except ValueError as e:
return render_template('error.html'), 404
Stock_componants.query.filter_by(id=componant_id).delete()
db.session.commit()
return get_componants()
return componants()
## Componant creation ##
@app.route('/componants/new/<componant_id>')
def add_componant(componant_id):
return render_template('wip.html')
@app.route('/componants/new', methods=['POST'])
@resume_session
def new_componant():
""" Add componant """
componant = Stock_componants(reference=session['c_reference'],
designation=session['c_designation'],
last_price=0,
mean_price=0,
quantity=0,
min_quantity=0,
place=session['c_place'],
provider_id=session['c_provider'])
try:
db.session.add(componant)
commit = db.session.commit()
except Exception as e:
print e
return 'KO'
if commit != None:
return 'KO'
return 'OK'
## Componants stock in ##
@app.route('/componants/in/<componant_id>')
def in_componants():
""" Incoming order """
return render_template('wip.html')
## Componants stock out ##
@app.route('/componants/out/<componant_id>')
def out_componants():
""" Outgoing order """
return render_template('wip.html')
## Componants update result set
@app.route('/componants/update', methods=['POST'])
@resume_session
def update_componants():
""" Display componants list """
# search by reference
like = '%s%s%s' % ('%', str(session['c_reference']), '%')
componants = Stock_componants.query.filter(Stock_componants.reference.like(like))
@@ -210,18 +237,18 @@ def update_componants():
like = '%s%s%s' % ('%', str(session['c_place']),'%')
componants = componants.filter(Stock_componants.place.like(like))
# search by provider
if session['c_provider'] > 0:
if session['c_provider'] > 1:
componants = componants.filter_by(provider_id=session['c_provider'])
# Pages calculation
row_count = componants.count()
session['c_pagecount'] = int(math.ceil(row_count / float(session['c_limit'])))
session['c_count'] = componants.count()
session['c_pagecount'] = int(math.ceil(session['c_count'] / float(session['c_limit'])))
session['c_page'] = int(math.ceil(float(float(session['c_offset']) + 1) / float(session['c_limit'])))
if session['c_page'] > session['c_pagecount']:
session['c_page'] = session['c_pagecount']
session['c_offset'] = 0
print "*****", componants.count(), session['c_pagecount'], session['c_page']
session['c_nexthop'] = session['c_offset'] + session['c_limit']
if session['c_nexthop'] > row_count - 1:
if session['c_nexthop'] > session['c_count'] - 1:
session['c_nexthop'] = int(session['c_offset'])
session['c_prevhop'] = int(session['c_offset']) - session['c_limit']
if session['c_prevhop'] < 0:
@@ -247,7 +274,7 @@ def update_componants():
page=session['c_page'],
sort=session['c_sort'],
order=session['c_order'],
row_count=row_count))
row_count=session['c_count']))
for key in session:
response.set_cookie(key, value=str(session[key]))
if key != 'session':