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 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 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')