search fields
This commit is contained in:
parent
874a27a8c9
commit
999dab3a7a
@ -39,7 +39,7 @@ class Archive():
|
|||||||
def search_message(self, keyword, msg, index_str, results, field='content'):
|
def search_message(self, keyword, msg, index_str, results, field='content'):
|
||||||
|
|
||||||
nbr_hits = 0
|
nbr_hits = 0
|
||||||
if msg[field].find(keyword) > 0:
|
if msg[field] is not None and msg[field].lower().find(keyword.lower()) > 0:
|
||||||
nbr_hits += 1
|
nbr_hits += 1
|
||||||
results.append({ "index_str": index_str, "subject": msg['subject'], "date": msg['date'], "author_name": msg['author_name'], "url": msg['url'] })
|
results.append({ "index_str": index_str, "subject": msg['subject'], "date": msg['date'], "author_name": msg['author_name'], "url": msg['url'] })
|
||||||
|
|
||||||
|
|||||||
@ -90,11 +90,12 @@ def searh():
|
|||||||
|
|
||||||
if len(request.args) < 1:
|
if len(request.args) < 1:
|
||||||
k = archives.archives_data.keys()
|
k = archives.archives_data.keys()
|
||||||
return render_template("search.html", archives=k)
|
return render_template("search.html", archives=k, fields=['content', 'from(name)', 'from(email)'])
|
||||||
|
|
||||||
k_arg = request.args.get('keyword')
|
k_arg = request.args.get('keyword')
|
||||||
l_arg = request.args.get('list')
|
l_arg = request.args.get('list')
|
||||||
sl_arg = request.args.get('sublist')
|
sl_arg = request.args.get('sublist')
|
||||||
|
f_arg = request.args.get('field')
|
||||||
|
|
||||||
if k_arg is None or k_arg.strip() == '':
|
if k_arg is None or k_arg.strip() == '':
|
||||||
return "no keyword..."
|
return "no keyword..."
|
||||||
@ -109,6 +110,11 @@ def searh():
|
|||||||
if not sl_arg in archives.archives_data[l]:
|
if not sl_arg in archives.archives_data[l]:
|
||||||
return "sublist '" + sl_arg + "' does not exist in list '" + l_arg + "'"
|
return "sublist '" + sl_arg + "' does not exist in list '" + l_arg + "'"
|
||||||
|
|
||||||
|
if f_arg == "from(name)":
|
||||||
|
f_arg = 'author_name'
|
||||||
|
elif f_arg == "from(email)":
|
||||||
|
f_arg = 'from'
|
||||||
|
|
||||||
lists = []
|
lists = []
|
||||||
if l_arg == "all":
|
if l_arg == "all":
|
||||||
for k in archives.archives_data.keys():
|
for k in archives.archives_data.keys():
|
||||||
@ -118,15 +124,16 @@ def searh():
|
|||||||
|
|
||||||
################################
|
################################
|
||||||
##
|
##
|
||||||
## need to cache all the below??
|
## need to cache all the below
|
||||||
##
|
##
|
||||||
################################
|
################################
|
||||||
|
|
||||||
results = []
|
results = []
|
||||||
for l in lists:
|
for l in lists:
|
||||||
|
# this makes no sense...
|
||||||
a = search.archive.Archive()
|
a = search.archive.Archive()
|
||||||
a.load(l)
|
a.load(l)
|
||||||
results.append(a.search(k_arg))
|
results.append(a.search(keyword=k_arg, field=f_arg))
|
||||||
|
|
||||||
## -- sort results?
|
## -- sort results?
|
||||||
search_results = sorted(results, key=get_result_key)
|
search_results = sorted(results, key=get_result_key)
|
||||||
|
|||||||
@ -15,6 +15,11 @@
|
|||||||
<option value="{{ a }}">{{ a }}</option>
|
<option value="{{ a }}">{{ a }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
|
<select form="search" name="field">
|
||||||
|
{% for a in fields %}
|
||||||
|
<option value="{{ a }}">{{ a }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
<input type="submit" value="search" id="submit">
|
<input type="submit" value="search" id="submit">
|
||||||
<div id="loading">Loading...</div>
|
<div id="loading">Loading...</div>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user