def __init__(self, field, request, params, model, model_admin, field_path): super(Date_perso_filter, self).__init__(field, request, params, model, model_admin, field_path) today = utils.today() tomorrow = today + timedelta(days=1) troismois = today + relativedelta(months=-3, day=1) self.links = ( (_('Any date'), {}), (_('Today'), { self.lookup_kwarg_since: str(today - timedelta(days=1)), self.lookup_kwarg_until: str(tomorrow), }), (_('Past 7 days'), { self.lookup_kwarg_since: str(today - timedelta(days=7)), self.lookup_kwarg_until: str(tomorrow), }), (_('This month'), { self.lookup_kwarg_since: str(today.replace(day=1)), self.lookup_kwarg_until: str(tomorrow), }), ('Les trois derniers mois', { self.lookup_kwarg_since: str(troismois), self.lookup_kwarg_until: str(today.replace(day=15)), # fin du mois precedent car pour la sg c'est jusqu'au 6 }), (_('This year'), { self.lookup_kwarg_since: str(today.replace(month=1, day=1)), self.lookup_kwarg_until: str(tomorrow), }), ('L\'an dernier', { self.lookup_kwarg_since: str(today.replace(day=1, year=today.year - 1, month=1)), self.lookup_kwarg_until: str(today.replace(day=31, month=12, year=today.year - 1)), }), )
def all_since_date(self, lastmaj): nb = collections.Counter() ope_list = List_ope() cat_list = List_cat_compte() cpt_list = List_cat_compte() # par defaut on parcours les operation modfie max il y a trois mois date_min = utils.today() - relativedelta(month=3) objs_a_parcourir = models.Db_log.objects.filter(date_time_action__gte=lastmaj, datamodel__in=['ope', 'cat', 'compte'], date_ref__gte=date_min).order_by('id') opes = dict((ob.pk, ob) for ob in models.Ope.objects.select_related('compte', 'tiers').filter(id__in=objs_a_parcourir.filter(datamodel="ope").values_list('id_model', flat=True))) cats = dict((ob.pk, ob) for ob in models.Cat.objects.order_by('id').all()) cpts = dict((ob.pk, ob) for ob in models.Compte.objects.order_by('id').all()) for element in objs_a_parcourir: if element.datamodel == "ope": obj_list = ope_list obj = opes if element.datamodel == "compte": obj_list = cpt_list obj = cpts if element.datamodel == "cat": obj_list = cat_list obj = cats if element.type_action == "I": try: nb[element.datamodel] += 1 nb['global'] += 1 obj_list.add(obj=obj[element.id_model], status=element.type_action) except KeyError: # ca veut dire que l'operation a ate efface depuis donc on ne s'y interresse pas nb[element.datamodel] -= 1 nb['global'] -= 1 continue if element.type_action == "U": try: if element.id_model not in obj_list: nb[element.datamodel] += 1 nb['global'] += 1 obj_list.add(obj=obj[element.id_model], status=element.type_action) except KeyError: # ca veut dire que l'operation a ate efface depuis donc on ne s'y interresse pas nb[element.datamodel] -= 1 nb['global'] -= 1 continue if element.type_action == "D": if element.id_model not in obj_list: nb[element.datamodel] += 1 nb['global'] += 1 obj_list.set_deleted(element.id_model, element.date_time_action) for cat in cat_list.sorted(): self.cat_unique(cat_list[cat]) for cpt in cpt_list.sorted(): self.compte_unique(cpt_list[cpt]) for ope in ope_list.sorted(): self.ope_unique(ope_list[ope]) return nb
def test_exercice_cache(self): cache = import_base.Exercice_cache(self.request_get('url_exemple')) self.assertEqual(cache.goc("exo1"), 1) m = models.Exercice.objects.get(id=1) self.assertEqual(m.nom, 'exo1') self.assertEqual(m.date_debut, utils.today()) self.assertEqual(m.date_fin, utils.today()) models.Exercice.objects.create(nom='test', id=30, date_debut=utils.today(), date_fin=utils.today()) self.assertEqual(cache.goc("test"), 30) m = models.Exercice.objects.get(id=30) self.assertEqual(m.id, 30) self.assertEqual(m.nom, 'test') self.assertEqual(cache.goc("test2", {"nom": 'test2', 'id': 31, 'date_debut': utils.today(), 'date_fin': utils.today()}), 31) m = models.Exercice.objects.get(id=31) self.assertEqual(m.id, 31) self.assertEqual(m.date_debut, utils.today()) self.assertEqual(m.date_fin, utils.today()) self.assertEqual(m.nom, 'test2')
def all_since_date(self, lastmaj): nb = collections.Counter() ope_list = List_ope() cat_list = List_cat_compte() cpt_list = List_cat_compte() # par defaut on parcours les operation modfie max il y a trois mois date_min = utils.today() - relativedelta(month=3) objs_a_parcourir = models.Db_log.objects.filter( date_time_action__gte=lastmaj, datamodel__in=['ope', 'cat', 'compte'], date_ref__gte=date_min).order_by('id') opes = dict((ob.pk, ob) for ob in models.Ope.objects.select_related( 'compte', 'tiers').filter(id__in=objs_a_parcourir.filter( datamodel="ope").values_list('id_model', flat=True))) cats = dict( (ob.pk, ob) for ob in models.Cat.objects.order_by('id').all()) cpts = dict( (ob.pk, ob) for ob in models.Compte.objects.order_by('id').all()) for element in objs_a_parcourir: if element.datamodel == "ope": obj_list = ope_list obj = opes if element.datamodel == "compte": obj_list = cpt_list obj = cpts if element.datamodel == "cat": obj_list = cat_list obj = cats if element.type_action == "I": try: nb[element.datamodel] += 1 nb['global'] += 1 obj_list.add(obj=obj[element.id_model], status=element.type_action) except KeyError: # ca veut dire que l'operation a ate efface depuis donc on ne s'y interresse pas nb[element.datamodel] -= 1 nb['global'] -= 1 continue if element.type_action == "U": try: if element.id_model not in obj_list: nb[element.datamodel] += 1 nb['global'] += 1 obj_list.add(obj=obj[element.id_model], status=element.type_action) except KeyError: # ca veut dire que l'operation a ate efface depuis donc on ne s'y interresse pas nb[element.datamodel] -= 1 nb['global'] -= 1 continue if element.type_action == "D": if element.id_model not in obj_list: nb[element.datamodel] += 1 nb['global'] += 1 obj_list.set_deleted(element.id_model, element.date_time_action) for cat in cat_list.sorted(): self.cat_unique(cat_list[cat]) for cpt in cpt_list.sorted(): self.compte_unique(cpt_list[cpt]) for ope in ope_list.sorted(): self.ope_unique(ope_list[ope]) return nb