def index_user(): menu = 'self_finance' context = '' title_page = 'Mes besoins financiers' search = False q = request.args.get('q') if q: search = True try: page = int(request.args.get('page', 1)) except ValueError: page = 1 user = Users.objects.get(id=session.get('user_id')) user_projet = Projet.objects(responsable_id=user.id) datas = [] if request.args.get('filtre') and request.args.get('filtre') is not None: if request.args.get('filtre') == 'rejet': for projet in user_projet: for prod in projet.besoin(rejet=True, attente=False): datas.append(prod) small_title = 'rejetes' if request.args.get('filtre') == 'applique': for projet in user_projet: for prod in projet.besoin(rejet=False, attente=False): datas.append(prod) small_title = 'valides' else: small_title = 'en cours' for projet in user_projet: for prod in projet.besoin(): datas.append(prod) for prod in projet.besoin_unsolde(): datas.append(prod) pagination = Pagination(css_framework='bootstrap3', page=page, total=len(datas), search=search, record_name='Besoins Financiers') if len(datas) > 25: offset_start = (page - 1) * 25 offset_end = page * 25 datas = datas[offset_start:offset_end] return render_template('projet/besoin_user.html', **locals())
def edit_user(besoin_id=None): relance = False if request.args.get('relance'): relance = True solde = False if request.args.get('solde'): solde = True if besoin_id: besoin = BesoinFinancier.objects.get(id=besoin_id) form = FormBesoin(obj=besoin) form.projet_id.data = str(besoin.projet_id.id) form.id.data = str(besoin.id) else: besoin = BesoinFinancier() form = FormBesoin() if relance: form.relance.data = 1 if solde: form.solde.data = 1 user = Users.objects.get(id=session.get('user_id')) form.projet_id.choices = [(0, 'Selectionnez un projet')] for projet in Projet.objects(responsable_id=user.id): form.projet_id.choices.append((str(projet.id), projet.titre)) success = False if form.validate_on_submit(): if not solde: besoin.commande = form.commande.data besoin.avance = float(form.avance.data) besoin.montant = float(form.montant.data) besoin.fournisseur = form.fournisseur.data if not form.avance.data: besoin.paye = float(form.montant.data) else: besoin.paye = float(form.avance.data) proj = Projet.objects.get(id=form.projet_id.data) besoin.projet_id = proj update = Update_Besoin() time_zones = pytz.timezone('Africa/Douala') date_now = datetime.datetime.now(time_zones) the_user = Users.objects.get(id=session.get('user_id')) update.date = date_now update.user = the_user update.action = 'creation_besoin' if relance: besoin.attente = True besoin.rejet = False update.action = 'relance_besoin' update.notified = True besoin.updated.append(update) besoin.date_echeance = datetime.datetime.combine( function.date_convert(form.date_echeance.data), datetime.datetime.min.time()) besoin.save() success = True else: # traitement a faire quand nous devons enregistrer une demande de solde besoin_new = BesoinFinancier() besoin_new.commande = form.commande.data besoin_new.avance = float(form.avance.data) besoin_new.montant = float(form.montant.data) besoin_new.fournisseur = form.fournisseur.data besoin_new.paye = float(form.avance.data) + besoin.paye besoin_new.last_child = True besoin_new.parent = besoin proj = Projet.objects.get(id=form.projet_id.data) besoin_new.projet_id = proj besoin_new.attente = True besoin_new.rejet = False update = Update_Besoin() time_zones = pytz.timezone('Africa/Douala') date_now = datetime.datetime.now(time_zones) the_user = Users.objects.get(id=session.get('user_id')) update.date = date_now update.user = the_user update.action = 'solde_besoin' update.notified = True besoin_new.updated.append(update) besoin_new.date_echeance = datetime.datetime.combine( function.date_convert(form.date_echeance.data), datetime.datetime.min.time()) besoin_new.save() success = True flash('Enregistrement effectue avec succes', 'success') return render_template('projet/besoin_edit_user.html', **locals())