def jour_ferier(): title_page = 'Parametre - Jour Ferier' menu = 'societe' submenu = 'ferier' time_zones = pytz.timezone('Africa/Douala') date_auto_nows = datetime.datetime.now(time_zones) year = date_auto_nows.year search = False q = request.args.get('q') if q: search = True try: page = int(request.args.get('page', 1)) except ValueError: page = 1 offset = 0 limit = 10 if page > 1: offset = ((page - 1) * 10) datas = Ferier.objects().order_by('-date').skip(offset).limit(limit) count = Ferier.objects().count() pagination = Pagination(css_framework='bootstrap3', page=page, total=count, search=search, record_name='Ferier') return render_template('conge/jour_ferier.html', **locals())
def jour_ferier(): title_page = "Parametre - Jour Ferier" menu = "societe" submenu = "ferier" time_zones = pytz.timezone("Africa/Douala") date_auto_nows = datetime.datetime.now(time_zones) year = date_auto_nows.year search = False q = request.args.get("q") if q: search = True try: page = int(request.args.get("page", 1)) except ValueError: page = 1 datas = Ferier.query() pagination = Pagination( css_framework="bootstrap3", page=page, total=datas.count(), search=search, record_name="Ferier" ) datas = datas.order(-Ferier.date) if datas.count() > 10: if page == 1: offset = 0 else: page -= 1 offset = page * 10 datas = datas.fetch(limit=10, offset=offset) return render_template("conge/jour_ferier.html", **locals())
def jour_ferier_edit(ferier_id=None): if ferier_id: feriers = Ferier.objects.get(id=ferier_id) form = FormFerier(obj=feriers) else: feriers = Ferier() form = FormFerier() success = False if form.validate_on_submit(): date_field = datetime.datetime.combine( function.date_convert(form.date.data), datetime.datetime.min.time()) feriers.date = date_field feriers.description = form.description.data feriers.save() update = False if not ferier_id: time_zones = pytz.timezone('Africa/Douala') date_auto_nows = datetime.datetime.now(time_zones).strftime( "%Y-%m-%d %H:%M:%S") if date_field <= function.datetime_convert(date_auto_nows): update = True flash('Enregistement effectue avec succes', 'success') success = True return render_template('conge/jour_ferier_edit.html', **locals())
def jour_ferier_edit(ferier_id=None): if ferier_id: feriers = Ferier.get_by_id(ferier_id) form = FormFerier(obj=feriers) else: feriers = Ferier() form = FormFerier() success = False if form.validate_on_submit(): feriers.date = function.date_convert(form.date.data) feriers.description = form.description.data feriers.put() update = False if not ferier_id: time_zones = pytz.timezone("Africa/Douala") date_auto_nows = datetime.datetime.now(time_zones).strftime("%Y-%m-%d %H:%M:%S") if function.date_convert(form.date.data) <= function.date_convert(date_auto_nows): update = True flash("Enregistement effectue avec succes", "success") success = True return render_template("conge/jour_ferier_edit.html", **locals())
def jour_ferier_delete(ferier_id): if request.args.get("confirmation"): return render_template("conge/jour_ferier_confirnation.html", **locals()) ferier = Ferier.get_by_id(ferier_id) prest_ferier = Prestation.query(Prestation.sigle == "FER").get() # Ensemble des utilisateurs all_user = Users.query(Users.email != "*****@*****.**") day = function.date_convert(ferier.date).strftime("%d/%m/%Y") dt = datetime.datetime.strptime(day, "%d/%m/%Y") start = dt - timedelta(days=dt.weekday()) end = start + timedelta(days=6) for user in all_user: tache_ferier = Tache.query(Tache.prestation_id == prest_ferier.key, Tache.user_id == user.key).get() if tache_ferier: the_temps_ferier = Temps.query( Temps.tache_id == tache_ferier.key, Temps.date_start == start, Temps.date_end == end ).get() if the_temps_ferier: all_detailTemps = DetailTemps.query( DetailTemps.temps_id == the_temps_ferier.key, DetailTemps.date == function.date_convert(ferier.date) ) for detailTemps in all_detailTemps: detailTemps.key.delete() details = DetailTemps.query(DetailTemps.temps_id == the_temps_ferier.key).count() if details: the_temps_ferier.key.delete() ferier.key.delete() flash("Suppression reussie", "success") return redirect(url_for("ferier.jour_ferier"))
def exist_date(form, field): date_field = datetime.datetime.combine(function.date_convert(field.data), datetime.datetime.min.time()) exist_ferier = Ferier.objects(date=date_field) if len(exist_ferier): raise wtf.ValidationError('Cette date a deja ete cree')
def exist_date(form, field): exist_ferier = Ferier.query( Ferier.date == function.date_convert(field.data) ).count() if exist_ferier: raise wtf.ValidationError('Cette date a deja ete cree')
def jour_ferier_tache(): # Ensemble des utilisateurs all_user = Users.objects(email__ne='*****@*****.**') prest_ferier = Prestation.objects(sigle='FER').first() for user in all_user: exist_tache = Tache.objects( Q(prestation_id=prest_ferier.id) & Q(user_id=user.id)) if not exist_tache: tache_conge = Tache() tache_conge.titre = 'Tache pour suivre les jours feriers' tache_conge.prestation_id = prest_ferier.id tache_conge.user_id = user.id tache_conge = tache_conge.save() time_zones = pytz.timezone('Africa/Douala') date_auto_nows = datetime.datetime.now(time_zones).strftime( "%Y-%m-%d %H:%M:%S") all_jour_ferier = Ferier.objects( Q(date__lte=function.datetime_convert(date_auto_nows)) & Q(apply=False)) for ferier in all_jour_ferier: day = ferier.date.strftime('%d/%m/%Y') dt = datetime.datetime.strptime(day, '%d/%m/%Y') if dt.weekday() < 5: start = dt - timedelta(days=dt.weekday()) end = start + timedelta(days=6) for user in all_user: tache = Tache.objects( Q(prestation_id=prest_ferier.id) & Q(user_id=user.id)).first() temps = Temps.objects( Q(tache_id=tache.id) & Q(date_start=start) & Q(date_end=end)).first() detail_fdt = DetailTemps() detail_fdt.date = datetime.datetime.combine( function.date_convert(ferier.date), datetime.datetime.min.time()) detail_fdt.description = ferier.description detail_fdt.heure = datetime.datetime(2000, 1, 1, 8, 0, 0) time = '08:00' time = time.split(':') conversion = 0.0 if int(time[0]) > 0: conversion += float(time[0]) if int(time[1]) > 0: min = float(time[1]) / 60 conversion += min detail_fdt.conversion = conversion if temps: detail_fdt.temps_id = temps else: temps = Temps() temps.user_id = tache.user_id temps.date_start = datetime.datetime.combine( function.date_convert(start), datetime.datetime.min.time()) temps.date_end = datetime.datetime.combine( function.date_convert(end), datetime.datetime.min.time()) temps.tache_id = tache time = temps.save() detail_fdt.temps_id = time ordre = 1 exist_temps = DetailTemps.objects( Q(temps_id=detail_fdt.temps_id.id)) if len(exist_temps): ordre += exist_temps detail_fdt.ordre = ordre detail_fdt.save() ferier.apply = True ferier.save() if request.args.get('return'): return redirect(url_for('ferier.jour_ferier')) else: return render_template('401.html')
def jour_ferier_tache(): # Ensemble des utilisateurs all_user = Users.query(Users.email != "*****@*****.**") prest_ferier = Prestation.query(Prestation.sigle == "FER").get() for user in all_user: exist_tache = Tache.query(Tache.prestation_id == prest_ferier.key, Tache.user_id == user.key).count() if not exist_tache: tache_conge = Tache() tache_conge.titre = "Tache pour suivre les jours feriers" tache_conge.prestation_id = prest_ferier.key tache_conge.user_id = user.key tache_conge = tache_conge.put() time_zones = pytz.timezone("Africa/Douala") date_auto_nows = datetime.datetime.now(time_zones).strftime("%Y-%m-%d %H:%M:%S") all_jour_ferier = Ferier.query(Ferier.date <= function.date_convert(date_auto_nows), Ferier.apply == False) for ferier in all_jour_ferier: day = ferier.date.strftime("%d/%m/%Y") dt = datetime.datetime.strptime(day, "%d/%m/%Y") if dt.weekday() < 5: start = dt - timedelta(days=dt.weekday()) end = start + timedelta(days=6) for user in all_user: tache = Tache.query(Tache.prestation_id == prest_ferier.key, Tache.user_id == user.key).get() temps = Temps.query(Temps.tache_id == tache.key, Temps.date_start == start, Temps.date_end == end).get() detail_fdt = DetailTemps() detail_fdt.date = function.date_convert(ferier.date) detail_fdt.description = ferier.description detail_fdt.heure = function.time_convert("08:00") time = "08:00" time = time.split(":") conversion = 0.0 if int(time[0]) > 0: conversion += float(time[0]) if int(time[1]) > 0: min = float(time[1]) / 60 conversion += min detail_fdt.conversion = conversion if temps: detail_fdt.temps_id = temps.key else: temps = Temps() temps.user_id = tache.user_id temps.date_start = function.date_convert(start) temps.date_end = function.date_convert(end) temps.tache_id = tache.key time = temps.put() detail_fdt.temps_id = time ordre = 1 exist_temps = DetailTemps.query(DetailTemps.temps_id == detail_fdt.temps_id).count() if exist_temps: ordre += exist_temps detail_fdt.ordre = ordre detail_fdt.put() ferier.apply = True ferier.put() if request.args.get("return"): return redirect(url_for("ferier.jour_ferier")) else: return render_template("401.html")