repère les numéros de demande et les numéros d'engagement provisionnel dans le champ de recherche libre
fixes #4018
This commit is contained in:
parent
3395059936
commit
f8140e0856
|
@ -176,6 +176,9 @@ class Request(models.Model):
|
|||
u"soumise(s) au droit d'auteur")),
|
||||
)
|
||||
|
||||
NUMBER_RE = re.compile(r'(\d\d\d\d)-(\d+)-(\d+)')
|
||||
FINANCIAL_CODE_RE = re.compile(r'\d{6,}')
|
||||
|
||||
class Meta:
|
||||
app_label = 'base'
|
||||
verbose_name = _(u'Demande de reprographie');
|
||||
|
|
|
@ -456,9 +456,9 @@ class ListRequest(ListView):
|
|||
self.qs(**{'search': None})]))
|
||||
|
||||
def apply_filter_search(sefl, qs, value):
|
||||
return qs.filter(Q(uploadfile__contains=value)
|
||||
| Q(name__contains=value)
|
||||
| Q(user__username__contains=value))
|
||||
q = Q(uploadfile__contains=value) | Q(name__contains=value) \
|
||||
| Q(user__username__contains=value)
|
||||
return qs.filter(q)
|
||||
|
||||
def handle_entity_filter(self,
|
||||
min_depth=app_settings.MIN_ENTITY_FILTER_DEPTH,
|
||||
|
@ -619,6 +619,18 @@ class ListRequest(ListView):
|
|||
|
||||
def apply_filter_free_text(self, qs, value):
|
||||
for elt in value.split():
|
||||
m = Request.NUMBER_RE.match(elt)
|
||||
if m:
|
||||
year, month, month_order = m.groups()
|
||||
qs = qs.filter(creation_date__year=int(year),
|
||||
creation_date__month=int(month),
|
||||
month_order=int(month_order))
|
||||
continue
|
||||
m = Request.FINANCIAL_CODE_RE.match(elt)
|
||||
if m:
|
||||
financial_code = m.group()
|
||||
qs = qs.filter(financial_code=financial_code)
|
||||
continue
|
||||
qs = qs.filter(Q(entity__description__icontains=elt)
|
||||
|Q(entity__description_override__icontains=elt)
|
||||
|Q(entity__code__icontains=elt)
|
||||
|
|
Reference in New Issue