from django.forms.formsets import formset_factory
import re
-class HaystackSearch(FacetedSearchView, SavedSearchView):
+class HaystackSearch(FacetedSearchView, SavedSearchView):
search_key = 'quick'
def __call__(self, request, type=None):
return super(HaystackSearch, self).get_query()
def get_results(self):
- if(self.type == 'item'):
+ if (self.type == 'item'):
return super(HaystackSearch, self).get_results().models(MediaItem)
- elif(self.type == 'corpus'):
+ elif (self.type == 'corpus'):
return super(HaystackSearch, self).get_results().models(MediaCorpus)
- elif(self.type == 'fonds'):
+ elif (self.type == 'fonds'):
return super(HaystackSearch, self).get_results().models(MediaFonds)
else:
return super(HaystackSearch, self).get_results().models(MediaCollection)
extra['Published_count'] = self.get_results().narrow('item_status:Published').count()
extra['Unpublished_count'] = self.get_results().narrow('item_status:Unpublished').count()
- extra['viewable_count'] = self.get_results().narrow('item_acces:full OR item_acces:mixed').narrow('digitized:T').count()
+ extra['viewable_count'] = self.get_results().narrow('item_acces:full OR item_acces:mixed').narrow(
+ 'digitized:T').count()
extra['digitized_count'] = self.get_results().narrow('digitized:T').count()
extra['CDR_count'] = self.get_results().narrow('physical_format:CDR').count()
extra['Disque_count'] = self.get_results().narrow('physical_format:Disque').count()
class HaystackAdvanceSearch(SavedSearchView):
-
search_key = 'advanced'
def __call__(self, request, type=None):
return super(HaystackAdvanceSearch, self).__call__(request)
def get_query(self):
- #overwrite the get_query for begin search with any form
+ # overwrite the get_query for begin search with any form
if self.form.is_valid():
return self.form.cleaned_data
return ''
def get_results(self):
- if(self.type == 'item'):
+ if (self.type == 'item'):
return self.form.search().models(MediaItem)
- elif(self.type == 'fonds'):
+ elif (self.type == 'fonds'):
return self.form.search().models(MediaFonds)
- elif(self.type == 'corpus'):
+ elif (self.type == 'corpus'):
return self.form.search().models(MediaCorpus)
else:
return self.form.search().models(MediaCollection)
if self.type == 'item':
extra['type'] = 'item'
- elif self.type == 'fonds':
+ elif self.type == 'fonds':
extra['type'] = 'fonds'
- elif(self.type == 'corpus'):
+ elif (self.type == 'corpus'):
extra['type'] = 'corpus'
else:
extra['type'] = 'collection'
extra['request_url'] = self.requestURL
return extra
+
def autocomplete(request):
attribut = request.GET.get('attr', '')
sqs = SearchQuerySet().load_all()
})
return HttpResponse(the_data, content_type='application/json')
+
import unicodedata
+
def escapeAccentAndLower(chaine):
return unicodedata.normalize('NFD', chaine).encode('ascii', 'ignore').lower()
-class BooleanSearchView(object):
+class BooleanSearchView(object):
form = formset_factory(BooleanSearch)
- def getBooleanQuery(self, request, type='json'):
+ def getBooleanQuery(self, request):
if request.method != 'GET':
return HttpResponse(json.dumps({'result': '[ERROR]:Not Request GET'}), content_type='application/json')
query = ""
for i in range(len(formset.forms)):
formul = formset.forms[i]
- if i!=0:
- query+=formul.cleaned_data["boolean"]+" "
- query+=formul.cleaned_data["startBracket"]
- query+=formul.cleaned_data["textField"].strip()+" "
- query+=formul.cleaned_data["endBracket"]
+ if i != 0:
+ query += formul.cleaned_data["boolean"] + " "
+ query += formul.cleaned_data["startBracket"]
+ query += formul.cleaned_data["textField"].strip() + " "
+ query += formul.cleaned_data["endBracket"]
try:
self.isCorrectQuery(query.strip())
except Erreur as e:
- if type=="json":
- return HttpResponse(json.dumps({'result': e.message}), content_type='application/json')
- if type=="json":
- return HttpResponse(json.dumps({'result': query.strip()}), content_type='application/json')
+ return HttpResponse(json.dumps({'result': e.message}), content_type='application/json')
+ return HttpResponse(json.dumps({'result': query.strip()}), content_type='application/json')
else:
- if type=="json":
- return HttpResponse(json.dumps({'result': '[ERROR]Field(s) missing'}), content_type='application/json')
+ return HttpResponse(json.dumps({'result': '[ERROR]Field(s) missing'}), content_type='application/json')
- def isCorrectQuery(self, query):#
+ def isCorrectQuery(self, query):
tabQuery = query.split()
openBracket = 0
boolean = False
for mot in tabQuery:
- if mot ==")":#
+ if mot == ")": #
if openBracket == 0:
raise Erreur("[ERROR]Open Bracket Is Missing !")
else:
openBracket -= 1
boolean = False
- elif mot=="ET" or mot=="OU":
+ elif mot == "ET" or mot == "OU":
if boolean:
raise Erreur("[ERROR]Two boolean follow")
else:
return True
-
-class Erreur(Exception):#
- pass#
\ No newline at end of file
+class Erreur(Exception): #
+ pass #