Remove absence and taches commands, utils and data files
This commit is contained in:
parent
c839a198d5
commit
bc3cb3f3d5
8 changed files with 3 additions and 817 deletions
|
|
@ -1,89 +0,0 @@
|
|||
import json
|
||||
import os
|
||||
import asyncio
|
||||
from datetime import datetime
|
||||
|
||||
FICHIER_TACHES = "taches.json"
|
||||
FICHIER_TACHES_TMP = "taches.json.tmp"
|
||||
FICHIER_ID = "id_compteur.json"
|
||||
file_lock = asyncio.Lock()
|
||||
|
||||
async def charger_taches():
|
||||
async with file_lock:
|
||||
if not os.path.exists(FICHIER_TACHES):
|
||||
with open(FICHIER_TACHES, "w", encoding='utf-8') as f:
|
||||
json.dump({"taches": {}}, f, indent=4)
|
||||
with open(FICHIER_TACHES, "r", encoding='utf-8') as f:
|
||||
return json.load(f)
|
||||
|
||||
async def sauvegarder_taches(donnees):
|
||||
async with file_lock:
|
||||
with open(FICHIER_TACHES_TMP, "w", encoding='utf-8') as f:
|
||||
json.dump(donnees, f, indent=4, ensure_ascii=False)
|
||||
os.replace(FICHIER_TACHES_TMP, FICHIER_TACHES)
|
||||
|
||||
async def generer_id_unique():
|
||||
async with file_lock:
|
||||
if not os.path.exists(FICHIER_ID):
|
||||
with open(FICHIER_ID, "w", encoding='utf-8') as f:
|
||||
json.dump({"dernier_id": 0}, f, indent=4)
|
||||
|
||||
with open(FICHIER_ID, "r+", encoding='utf-8') as f:
|
||||
data = json.load(f)
|
||||
data["dernier_id"] += 1
|
||||
f.seek(0)
|
||||
json.dump(data, f, indent=4)
|
||||
f.truncate()
|
||||
return str(data["dernier_id"])
|
||||
|
||||
async def ajouter_tache(titre, description, user_id, priorite, date_echeance, auteur_id):
|
||||
data = await charger_taches()
|
||||
taches = data["taches"]
|
||||
id_tache = await generer_id_unique()
|
||||
|
||||
taches[id_tache] = {
|
||||
"titre": titre,
|
||||
"description": description,
|
||||
"assigné": user_id,
|
||||
"statut": "À faire",
|
||||
"priorité": priorite,
|
||||
"échéance": date_echeance,
|
||||
"créé_par": auteur_id,
|
||||
"commentaires": []
|
||||
}
|
||||
|
||||
await sauvegarder_taches(data)
|
||||
return id_tache
|
||||
|
||||
async def update_tache_status(id_tache, statut):
|
||||
data = await charger_taches()
|
||||
if id_tache in data["taches"]:
|
||||
data["taches"][id_tache]["statut"] = statut
|
||||
await sauvegarder_taches(data)
|
||||
return True
|
||||
return False
|
||||
|
||||
async def supprimer_tache(id_tache):
|
||||
data = await charger_taches()
|
||||
if id_tache in data["taches"]:
|
||||
del data["taches"][id_tache]
|
||||
await sauvegarder_taches(data)
|
||||
return True
|
||||
return False
|
||||
|
||||
async def lister_taches_utilisateur(user_id):
|
||||
data = await charger_taches()
|
||||
return {tid: t for tid, t in data["taches"].items() if t["assigné"] == user_id}
|
||||
|
||||
async def taches_proches():
|
||||
data = await charger_taches()
|
||||
proches = {}
|
||||
now = datetime.now()
|
||||
for tid, t in data["taches"].items():
|
||||
try:
|
||||
date_obj = datetime.strptime(t["échéance"], "%Y-%m-%d")
|
||||
if 0 <= (date_obj - now).days <= 2:
|
||||
proches[tid] = t
|
||||
except ValueError:
|
||||
continue
|
||||
return proches
|
||||
Loading…
Add table
Add a link
Reference in a new issue