diff options
Diffstat (limited to 'archaeological_context_records/models.py')
-rw-r--r-- | archaeological_context_records/models.py | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 4a288b5dc..2654788f7 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -198,17 +198,25 @@ class ContextRecord(BaseHistorizedItem, OwnPerms, ShortMenuItem): return self.operation.get_town_label() @classmethod - def get_years(cls): - years = set() - for res in list(cls.objects.values('operation__start_date')): - if res['operation__start_date']: - yr = res['operation__start_date'].year - years.add(yr) - return list(years) + def get_periods(cls, slice='year', fltr={}): + q = cls.objects + if fltr: + q = q.filter(**fltr) + if slice == 'year': + years = set() + for res in list(q.values('operation__start_date')): + if res['operation__start_date']: + yr = res['operation__start_date'].year + years.add(yr) + return list(years) + return [] @classmethod - def get_by_year(cls, year): - return cls.objects.filter(operation__start_date__year=year) + def get_by_year(cls, year, fltr={}): + q = cls.objects + if fltr: + q = q.filter(**fltr) + return q.filter(operation__start_date__year=year) @classmethod def get_operations(cls): @@ -220,8 +228,11 @@ class ContextRecord(BaseHistorizedItem, OwnPerms, ShortMenuItem): return cls.objects.filter(operation__pk=operation_id) @classmethod - def get_total_number(cls): - return cls.objects.filter(operation__start_date__isnull=False).count() + def get_total_number(cls, fltr={}): + q = cls.objects + if fltr: + q = q.filter(**fltr) + return q.count() def find_docs_q(self): from archaeological_finds.models import FindSource |