mirror of
https://github.com/almet/copanier.git
synced 2025-04-28 19:42:37 +02:00
Do some cleaning. Thanks pylint.
This commit is contained in:
parent
cbb8329c3e
commit
9af506ba4b
1 changed files with 27 additions and 18 deletions
|
@ -1,23 +1,22 @@
|
||||||
import csv
|
import csv
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from functools import partial
|
||||||
|
|
||||||
import ujson as json
|
import ujson as json
|
||||||
import minicli
|
import minicli
|
||||||
from jinja2 import Environment, PackageLoader, select_autoescape
|
from jinja2 import Environment, PackageLoader, select_autoescape
|
||||||
from roll import Roll, Response, HttpError
|
from roll import Roll as BaseRoll, Response as RollResponse, HttpError
|
||||||
from roll.extensions import traceback, simple_server, static
|
from roll.extensions import traceback, simple_server, static
|
||||||
from slugify import slugify
|
from slugify import slugify
|
||||||
|
|
||||||
from debts.solver import order_balance, check_balance, reduce_balance
|
from debts.solver import order_balance, check_balance, reduce_balance
|
||||||
from collections import defaultdict
|
|
||||||
from functools import partial
|
|
||||||
|
|
||||||
from . import config, reports, session, utils, emails, loggers, imports
|
from . import config, reports, session, utils, emails, loggers, imports
|
||||||
from .models import Delivery, Order, Person, Product, ProductOrder, Groups, Group
|
from .models import Delivery, Order, Person, Product, ProductOrder, Groups, Group
|
||||||
|
|
||||||
|
|
||||||
class Response(Response):
|
class Response(RollResponse):
|
||||||
def html(self, template_name, *args, **kwargs):
|
def html(self, template_name, *args, **kwargs):
|
||||||
self.headers["Content-Type"] = "text/html; charset=utf-8"
|
self.headers["Content-Type"] = "text/html; charset=utf-8"
|
||||||
context = app.context()
|
context = app.context()
|
||||||
|
@ -45,7 +44,7 @@ class Response(Response):
|
||||||
self.cookies.set("message", json.dumps((text, status)))
|
self.cookies.set("message", json.dumps((text, status)))
|
||||||
|
|
||||||
|
|
||||||
class Roll(Roll):
|
class Roll(BaseRoll):
|
||||||
Response = Response
|
Response = Response
|
||||||
|
|
||||||
_context_func = []
|
_context_func = []
|
||||||
|
@ -152,8 +151,8 @@ async def sesame(request, response):
|
||||||
response.html("sesame.html")
|
response.html("sesame.html")
|
||||||
|
|
||||||
|
|
||||||
@app.route("/sésame", methods=["POST"])
|
@app.route("/sésame", methods=["POST"], unprotected=True)
|
||||||
async def send_sesame(request, response, unprotected=True):
|
async def send_sesame(request, response):
|
||||||
email = request.form.get("email")
|
email = request.form.get("email")
|
||||||
token = utils.create_token(email)
|
token = utils.create_token(email)
|
||||||
emails.send_from_template(
|
emails.send_from_template(
|
||||||
|
@ -229,7 +228,9 @@ async def create_group(request, response):
|
||||||
members.append(request["user"].email)
|
members.append(request["user"].email)
|
||||||
|
|
||||||
group = Group.create(
|
group = Group.create(
|
||||||
id=slugify(form.get("name")), name=form.get("name"), members=members
|
id=slugify(form.get("name")),
|
||||||
|
name=form.get("name"),
|
||||||
|
members=members,
|
||||||
)
|
)
|
||||||
request["groups"].add_group(group)
|
request["groups"].add_group(group)
|
||||||
request["groups"].persist()
|
request["groups"].persist()
|
||||||
|
@ -305,7 +306,7 @@ async def create_delivery(request, response):
|
||||||
data = {}
|
data = {}
|
||||||
data["from_date"] = f"{form.get('date')} {form.get('from_time')}"
|
data["from_date"] = f"{form.get('date')} {form.get('from_time')}"
|
||||||
data["to_date"] = f"{form.get('date')} {form.get('to_time')}"
|
data["to_date"] = f"{form.get('date')} {form.get('to_time')}"
|
||||||
for name, field in Delivery.__dataclass_fields__.items():
|
for name in Delivery.__dataclass_fields__.keys():
|
||||||
if name in form:
|
if name in form:
|
||||||
data[name] = form.get(name)
|
data[name] = form.get(name)
|
||||||
delivery = Delivery(**data)
|
delivery = Delivery(**data)
|
||||||
|
@ -338,9 +339,9 @@ async def import_products(request, response, id):
|
||||||
response.redirect = f"/livraison/{delivery.id}"
|
response.redirect = f"/livraison/{delivery.id}"
|
||||||
|
|
||||||
|
|
||||||
@app.route("/livraison/{delivery_id}/producteurices")
|
@app.route("/livraison/{id}/producteurices")
|
||||||
async def list_producers(request, response, delivery_id):
|
async def list_producers(request, response, id):
|
||||||
delivery = Delivery.load(delivery_id)
|
delivery = Delivery.load(id)
|
||||||
response.html(
|
response.html(
|
||||||
"list_products.html",
|
"list_products.html",
|
||||||
{
|
{
|
||||||
|
@ -451,14 +452,18 @@ async def send_referent_emails(request, response, id):
|
||||||
email_subject = request.form.get("email_subject")
|
email_subject = request.form.get("email_subject")
|
||||||
for referent in delivery.get_referents():
|
for referent in delivery.get_referents():
|
||||||
producers = delivery.get_producers_for_referent(referent)
|
producers = delivery.get_producers_for_referent(referent)
|
||||||
if any([delivery.producers[p].has_active_products(delivery) for p in producers]):
|
if any(
|
||||||
|
[delivery.producers[p].has_active_products(delivery) for p in producers]
|
||||||
|
):
|
||||||
summary = reports.summary(delivery, producers)
|
summary = reports.summary(delivery, producers)
|
||||||
emails.send(
|
emails.send(
|
||||||
referent,
|
referent,
|
||||||
email_subject,
|
email_subject,
|
||||||
email_body,
|
email_body,
|
||||||
copy=delivery.contact,
|
copy=delivery.contact,
|
||||||
attachments=[(f"{config.SITE_NAME}-{date}-{referent}.xlsx", summary)],
|
attachments=[
|
||||||
|
(f"{config.SITE_NAME}-{date}-{referent}.xlsx", summary)
|
||||||
|
],
|
||||||
)
|
)
|
||||||
response.message("Le mail à bien été envoyé")
|
response.message("Le mail à bien été envoyé")
|
||||||
response.redirect = f"/livraison/{id}/gérer"
|
response.redirect = f"/livraison/{id}/gérer"
|
||||||
|
@ -479,7 +484,8 @@ async def download_referent_summary(request, response, id):
|
||||||
|
|
||||||
|
|
||||||
@app.route(
|
@app.route(
|
||||||
"/livraison/{id}/product⋅eur⋅rice/{producer}/bon-de-commande", methods=["GET"]
|
"/livraison/{id}/product⋅eur⋅rice/{producer}/bon-de-commande",
|
||||||
|
methods=["GET"],
|
||||||
)
|
)
|
||||||
async def download_producer_report(request, response, id, producer):
|
async def download_producer_report(request, response, id, producer):
|
||||||
delivery = Delivery.load(id)
|
delivery = Delivery.load(id)
|
||||||
|
@ -510,7 +516,7 @@ async def post_delivery(request, response, id):
|
||||||
form = request.form
|
form = request.form
|
||||||
delivery.from_date = f"{form.get('date')} {form.get('from_time')}"
|
delivery.from_date = f"{form.get('date')} {form.get('from_time')}"
|
||||||
delivery.to_date = f"{form.get('date')} {form.get('to_time')}"
|
delivery.to_date = f"{form.get('date')} {form.get('to_time')}"
|
||||||
for name, field in Delivery.__dataclass_fields__.items():
|
for name in Delivery.__dataclass_fields__.keys():
|
||||||
if name in form:
|
if name in form:
|
||||||
setattr(delivery, name, form.get(name))
|
setattr(delivery, name, form.get(name))
|
||||||
delivery.persist()
|
delivery.persist()
|
||||||
|
@ -702,6 +708,7 @@ async def xls_full_report(request, response, id):
|
||||||
async def adjust_product(request, response, id, ref):
|
async def adjust_product(request, response, id, ref):
|
||||||
delivery = Delivery.load(id)
|
delivery = Delivery.load(id)
|
||||||
delivery_url = f"/livraison/{delivery.id}"
|
delivery_url = f"/livraison/{delivery.id}"
|
||||||
|
product = None
|
||||||
for product in delivery.products:
|
for product in delivery.products:
|
||||||
if product.ref == ref:
|
if product.ref == ref:
|
||||||
break
|
break
|
||||||
|
@ -727,7 +734,6 @@ async def adjust_product(request, response, id, ref):
|
||||||
async def delivery_balance(request, response, id):
|
async def delivery_balance(request, response, id):
|
||||||
delivery = Delivery.load(id)
|
delivery = Delivery.load(id)
|
||||||
groups = request["groups"]
|
groups = request["groups"]
|
||||||
delivery_url = f"/livraison/{delivery.id}"
|
|
||||||
|
|
||||||
balance = []
|
balance = []
|
||||||
for group_id, order in delivery.orders.items():
|
for group_id, order in delivery.orders.items():
|
||||||
|
@ -742,7 +748,10 @@ async def delivery_balance(request, response, id):
|
||||||
# and all the other ones are separated in the table.
|
# and all the other ones are separated in the table.
|
||||||
group_id = None
|
group_id = None
|
||||||
if hasattr(group, "id"):
|
if hasattr(group, "id"):
|
||||||
if group.id not in producer_groups or producer_groups[group.id] == producer.referent_name:
|
if (
|
||||||
|
group.id not in producer_groups
|
||||||
|
or producer_groups[group.id] == producer.referent_name
|
||||||
|
):
|
||||||
producer_groups[group.id] = producer.referent_name
|
producer_groups[group.id] = producer.referent_name
|
||||||
group_id = group.id
|
group_id = group.id
|
||||||
if not group_id:
|
if not group_id:
|
||||||
|
|
Loading…
Reference in a new issue