Nouvelle feuille de style + gestion fournisseurs
This commit is contained in:
286
tetastock.py
286
tetastock.py
@@ -42,6 +42,7 @@ class Stock_providers(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
name = db.Column(db.Text, nullable=False)
|
||||
address = db.Column(db.Text)
|
||||
mail = db.Column(db.Text)
|
||||
url = db.Column(db.Text)
|
||||
comment = db.Column(db.Text)
|
||||
|
||||
@@ -60,16 +61,19 @@ def resume_session(func):
|
||||
@wraps(func)
|
||||
def check(*args, **kwargs):
|
||||
# default
|
||||
limit = 8
|
||||
limit = 10
|
||||
offset = 0
|
||||
page = 1
|
||||
nexthop = offset + limit
|
||||
prevhop = offset
|
||||
sort = 'reference'
|
||||
order = 'asc'
|
||||
order_refresh = 0
|
||||
c_empty = ''
|
||||
c_sort = 'reference'
|
||||
c_provider = 0
|
||||
c_count = 0
|
||||
p_empty = ''
|
||||
p_sort = 'name'
|
||||
offset_reset = ['c_reference', 'c_designation', 'c_place', 'c_provider']
|
||||
if not 'session' in session:
|
||||
session['session'] = ''
|
||||
@@ -78,11 +82,13 @@ def resume_session(func):
|
||||
if not 'c_offest' in session:
|
||||
session['c_offset'] = offset
|
||||
if not 'c_sort' in session:
|
||||
session['c_sort'] = sort
|
||||
session['c_sort'] = c_sort
|
||||
if not 'c_order' in session:
|
||||
session['c_order'] = order
|
||||
if not 'c_order_refresh' in session:
|
||||
session['c_order_refresh'] = order_refresh
|
||||
if not 'c_page' in session:
|
||||
session['c_page'] = page
|
||||
if not 'c_nexthop' in session:
|
||||
session['c_nexthop'] = nexthop
|
||||
if not 'c_prevhop' in session:
|
||||
@@ -97,6 +103,33 @@ def resume_session(func):
|
||||
session['c_provider'] = c_provider
|
||||
if not 'c_count' in session:
|
||||
session['c_count'] = c_count
|
||||
if not 'p_sort' in session:
|
||||
session['p_sort'] = p_sort
|
||||
if not 'p_order' in session:
|
||||
session['p_order'] = order
|
||||
if not 'p_order_refresh' in session:
|
||||
session['p_order_refresh'] = order_refresh
|
||||
if not 'p_page' in session:
|
||||
session['p_page'] = page
|
||||
if not 'p_nexthop' in session:
|
||||
session['p_nexthop'] = nexthop
|
||||
if not 'p_prevhop' in session:
|
||||
session['p_prevhop'] = prevhop
|
||||
if not 'p_offset' in session:
|
||||
session['p_offset'] = offset
|
||||
if not 'p_limit' in session:
|
||||
session['p_limit'] = limit
|
||||
if not 'p_name' in session:
|
||||
session['p_name'] = p_empty
|
||||
if not 'p_address' in session:
|
||||
session['p_address'] = p_empty
|
||||
if not 'p_mail' in session:
|
||||
session['p_mail'] = p_empty
|
||||
if not 'p_url' in session:
|
||||
session['p_url'] = p_empty
|
||||
if not 'p_comment' in session:
|
||||
session['p_comment'] = p_empty
|
||||
|
||||
# Cookies/session sync
|
||||
for key in request.cookies:
|
||||
old = str(session[key])
|
||||
@@ -109,14 +142,18 @@ def resume_session(func):
|
||||
session['c_offset'] = 0
|
||||
|
||||
if key != 'session':
|
||||
print '+', key, request.cookies[key]
|
||||
print '[s]', key, request.cookies[key]
|
||||
|
||||
|
||||
# Switch sort order
|
||||
if session['c_order_refresh'] == 1:
|
||||
refresh = {'desc': 'asc', 'asc': 'desc'}
|
||||
session['c_order'] = refresh[session['c_order']]
|
||||
session['c_order_refresh'] = 0
|
||||
session['c_order_refresh'] = 0
|
||||
if session['p_order_refresh'] == 1:
|
||||
refresh = {'desc': 'asc', 'asc': 'desc'}
|
||||
session['p_order'] = refresh[session['p_order']]
|
||||
session['p_order_refresh'] = 0
|
||||
return func(*args, **kwargs)
|
||||
return check
|
||||
|
||||
@@ -149,6 +186,7 @@ def componants():
|
||||
provider_id=session['c_provider'])
|
||||
|
||||
@app.route('/componants/<componant_id>')
|
||||
@resume_session
|
||||
def get_componant(componant_id):
|
||||
""" Edit componant """
|
||||
try:
|
||||
@@ -164,6 +202,7 @@ def get_componant(componant_id):
|
||||
return render_template('error.html'), 404
|
||||
|
||||
@app.route('/componants/update/<componant_id>', methods=['POST'])
|
||||
@resume_session
|
||||
def update_componant(componant_id):
|
||||
""" Update componant field"""
|
||||
field = request.form['field']
|
||||
@@ -180,14 +219,17 @@ def update_componant(componant_id):
|
||||
return 'KO'
|
||||
|
||||
@app.route('/componants/delete/<componant_id>')
|
||||
@resume_session
|
||||
def delete_componant(componant_id):
|
||||
""" Delete componant """
|
||||
try:
|
||||
componant_id = int(componant_id)
|
||||
Stock_componants.query.filter_by(id=componant_id).delete()
|
||||
db.session.commit()
|
||||
except ValueError as e:
|
||||
return render_template('error.html'), 404
|
||||
Stock_componants.query.filter_by(id=componant_id).delete()
|
||||
db.session.commit()
|
||||
except Exception as e:
|
||||
print "[+] Error at delete_componant:\n------------------------------\n%s------------------------------" % e.message
|
||||
return componants()
|
||||
|
||||
@app.route('/componants/new', methods=['POST'])
|
||||
@@ -206,18 +248,20 @@ def new_componant():
|
||||
db.session.add(componant)
|
||||
commit = db.session.commit()
|
||||
except Exception as e:
|
||||
print e
|
||||
print "[+] Error at new_componant:\n------------------------------\n%s------------------------------" % e.message
|
||||
return 'KO'
|
||||
if commit != None:
|
||||
return 'KO'
|
||||
return 'OK'
|
||||
|
||||
@app.route('/componants/in/<componant_id>')
|
||||
@resume_session
|
||||
def in_componants():
|
||||
""" Incoming order """
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/componants/out/<componant_id>')
|
||||
@resume_session
|
||||
def out_componants():
|
||||
""" Outgoing order """
|
||||
return render_template('wip.html')
|
||||
@@ -246,7 +290,6 @@ def update_componants():
|
||||
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'] > session['c_count'] - 1:
|
||||
session['c_nexthop'] = int(session['c_offset'])
|
||||
@@ -265,7 +308,7 @@ def update_componants():
|
||||
# Get result
|
||||
componants = componants.all()
|
||||
|
||||
response = app.make_response(render_template('result.html',
|
||||
response = app.make_response(render_template('result_componants.html',
|
||||
componants=componants,
|
||||
offset=session['c_offset'] ,
|
||||
nexthop=session['c_nexthop'],
|
||||
@@ -278,101 +321,160 @@ def update_componants():
|
||||
for key in session:
|
||||
response.set_cookie(key, value=str(session[key]))
|
||||
if key != 'session':
|
||||
print '++', key, session[key]
|
||||
print '[c]', key, session[key]
|
||||
return response
|
||||
|
||||
########################################################################
|
||||
# Providers
|
||||
########################################################################
|
||||
@app.route('/providers', methods=['GET', 'POST'])
|
||||
@resume_session
|
||||
def providers():
|
||||
return render_template('providers.html',
|
||||
name=session['p_name'],
|
||||
address=session['p_address'],
|
||||
mail=session['p_mail'],
|
||||
url=session['p_url'],
|
||||
comment=session['p_comment'])
|
||||
|
||||
@app.route('/providers/<provider_id>')
|
||||
@resume_session
|
||||
def get_provider(provider_id):
|
||||
""" Edit provider """
|
||||
try:
|
||||
provider_id = int(provider_id)
|
||||
except ValueError as e:
|
||||
return render_template('error.html'), 404
|
||||
provider = Stock_providers.query.filter_by(id=provider_id).first()
|
||||
if provider:
|
||||
return render_template('provider.html', provider=provider)
|
||||
return render_template('error.html'), 404
|
||||
|
||||
|
||||
@app.route('/providers/update/<provider_id>', methods=['POST'])
|
||||
@resume_session
|
||||
def update_provider(provider_id):
|
||||
""" Update provider field"""
|
||||
field = request.form['field']
|
||||
value = request.form['value']
|
||||
if field and value:
|
||||
try:
|
||||
provider = Stock_providers.query.filter_by(id=provider_id).first()
|
||||
setattr(provider, field, value)
|
||||
commit = db.session.commit()
|
||||
if commit == None:
|
||||
return 'OK'
|
||||
except Exception as e:
|
||||
pass
|
||||
return 'KO'
|
||||
|
||||
@app.route('/providers/new', methods=['POST'])
|
||||
@resume_session
|
||||
def new_provider():
|
||||
""" Add provider """
|
||||
provider = Stock_providers(name=session['p_name'],
|
||||
address=session['p_address'],
|
||||
mail=session['p_mail'],
|
||||
url=session['p_url'],
|
||||
comment=session['p_comment'])
|
||||
try:
|
||||
db.session.add(provider)
|
||||
commit = db.session.commit()
|
||||
except Exception as e:
|
||||
print 'Error at new_provider():', e
|
||||
print 'Commit = ', commit
|
||||
return 'KO'
|
||||
if commit != None:
|
||||
return 'KO'
|
||||
return 'OK'
|
||||
|
||||
@app.route('/providers/delete/<provider_id>')
|
||||
@resume_session
|
||||
def delete_provider(provider_id):
|
||||
""" Delete provider """
|
||||
try:
|
||||
provider_id = int(provider_id)
|
||||
Stock_providers.query.filter_by(id=provider_id).delete()
|
||||
db.session.commit()
|
||||
except ValueError as e:
|
||||
return render_template('error.html'), 404
|
||||
except Exception as e:
|
||||
print "[+] Error at delete_provider:\n-----------------------------\n%s-----------------------------" % e.message
|
||||
return providers()
|
||||
|
||||
@app.route('/providers/update', methods=['POST'])
|
||||
@resume_session
|
||||
def search_providers():
|
||||
""" Display componants list """
|
||||
# search by reference
|
||||
like = '%s%s%s' % ('%', str(session['p_name']), '%')
|
||||
providers = Stock_providers.query.filter(Stock_providers.name.like(like))
|
||||
# search by designation
|
||||
like = '%s%s%s' % ('%', str(session['p_address']), '%')
|
||||
providers = providers.filter(Stock_providers.address.like(like))
|
||||
# search by place
|
||||
like = '%s%s%s' % ('%', str(session['p_mail']),'%')
|
||||
providers = providers.filter(Stock_providers.mail.like(like))
|
||||
# search by place
|
||||
like = '%s%s%s' % ('%', str(session['p_url']),'%')
|
||||
providers = providers.filter(Stock_providers.url.like(like))
|
||||
# search by place
|
||||
like = '%s%s%s' % ('%', str(session['p_comment']),'%')
|
||||
providers = providers.filter(Stock_providers.comment.like(like))
|
||||
# Don't take 'all' and 'none' entry
|
||||
providers = providers.filter(Stock_providers.id > 2)
|
||||
|
||||
# Pages calculation
|
||||
session['p_count'] = providers.count()
|
||||
session['p_pagecount'] = int(math.ceil(session['p_count'] / float(session['p_limit'])))
|
||||
session['p_page'] = int(math.ceil(float(float(session['p_offset']) + 1) / float(session['p_limit'])))
|
||||
if session['p_page'] > session['p_pagecount']:
|
||||
session['p_page'] = session['p_pagecount']
|
||||
session['p_offset'] = 0
|
||||
session['p_nexthop'] = session['p_offset'] + session['p_limit']
|
||||
if session['p_nexthop'] > session['p_count'] - 1:
|
||||
session['p_nexthop'] = int(session['p_offset'])
|
||||
session['p_prevhop'] = int(session['p_offset']) - session['p_limit']
|
||||
if session['p_prevhop'] < 0:
|
||||
session['p_prevhop'] = 0
|
||||
# Sorting
|
||||
sort = getattr(Stock_providers, session['p_sort'])
|
||||
if session['p_order'] == 'desc':
|
||||
sort = getattr(Stock_providers, session['p_sort']).desc()
|
||||
providers = providers.order_by(sort)
|
||||
# Applying offset
|
||||
providers = providers.offset(session['p_offset'])
|
||||
# Applying limit
|
||||
providers = providers.limit(session['p_limit'])
|
||||
# Get result
|
||||
providers = providers.all()
|
||||
response = app.make_response(render_template('result_providers.html',
|
||||
providers=providers,
|
||||
offset=session['p_offset'] ,
|
||||
nexthop=session['p_nexthop'],
|
||||
prevhop=session['p_prevhop'],
|
||||
page_count=session['p_pagecount'],
|
||||
page=session['p_page'],
|
||||
sort=session['p_sort'],
|
||||
order=session['p_order'],
|
||||
row_count=session['p_count']))
|
||||
for key in session:
|
||||
response.set_cookie(key, value=str(session[key]))
|
||||
if key != 'session':
|
||||
print '[c]', key, session[key]
|
||||
return response
|
||||
|
||||
|
||||
########################################################################
|
||||
# Kits
|
||||
########################################################################
|
||||
@app.route('/kits')
|
||||
def get_kits():
|
||||
return render_template('kits.html')
|
||||
|
||||
@app.route('/kits/<kit_id>')
|
||||
def get_kit(kit_id):
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/kits/add/<kit_id>')
|
||||
def add_kit(kit_id):
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/kits/edit/<kit_id>')
|
||||
def edit_kit(kit_id):
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/kits/delete/<kit_id>')
|
||||
def delete_kit(kit_id):
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/kits/search')
|
||||
def search_kits():
|
||||
return render_template('wip.html')
|
||||
|
||||
########################################################################
|
||||
# Providers
|
||||
########################################################################
|
||||
@app.route('/providers')
|
||||
def get_providers():
|
||||
return render_template('providers.html')
|
||||
|
||||
@app.route('/providers/<provider_id>')
|
||||
def get_provider(provider_id):
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/providers/add/<provider_id>')
|
||||
def add_provider(provider_id):
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/providers/edit/<provider_id>')
|
||||
def edit_provider(provider_id):
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/providers/delete/<provider_id>')
|
||||
def delete_provider(provider_id):
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/providers/search')
|
||||
def search_providers():
|
||||
return render_template('wip.html')
|
||||
|
||||
########################################################################
|
||||
# Users
|
||||
########################################################################
|
||||
@app.route('/users')
|
||||
def get_users():
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/users/<user_id>')
|
||||
def get_user(user_id):
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/users/add/<user_id>')
|
||||
def add_user(user_id):
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/users/edit/<user_id>')
|
||||
def edit_user(user_id):
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/users/delete/<user_id>')
|
||||
def delete_user(user_id):
|
||||
return render_template('wip.html')
|
||||
|
||||
@app.route('/users/search')
|
||||
def search_users():
|
||||
return render_template('wip.html')
|
||||
|
||||
##############################################
|
||||
# SQL
|
||||
##############################################
|
||||
def sql_get_distinct(query):
|
||||
results = []
|
||||
for result in query:
|
||||
result = result[0]
|
||||
if result not in results:
|
||||
results.append(result)
|
||||
return results
|
||||
|
||||
# Main #######################################
|
||||
|
||||
|
||||
Reference in New Issue
Block a user