Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion TEKDB/.coveragerc
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[run]
omit =
*/migrations/*
*/migrations/*
*/tests/*
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removing tests from coverage stats

13 changes: 10 additions & 3 deletions TEKDB/TEKDB/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,10 @@ def __init__(self, *args, **kwargs):


class CitationsForm(forms.ModelForm):
class Meta:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was getting an error with Meta missing

model = Citations
fields = "__all__"

def __init__(self, *args, **kwargs):
super(CitationsForm, self).__init__(*args, **kwargs)
self.fields["referencetype"].queryset = LookupReferenceType.objects.order_by(
Expand Down Expand Up @@ -138,6 +142,10 @@ class Meta:


class ResourcesForm(forms.ModelForm):
class Meta:
model = Resources
fields = "__all__"

def __init__(self, *args, **kwargs):
super(ResourcesForm, self).__init__(*args, **kwargs)
self.fields[
Expand Down Expand Up @@ -632,7 +640,6 @@ def save_model(self, request, obj, form, change):
mediatype__startswith="other"
).first()
mediatype = media_type_instance

filename = file.name.split(".")[0]

media_instance = Media(
Expand Down Expand Up @@ -965,10 +972,10 @@ class PlacesAdmin(NestedRecordAdminProxy, RecordModelAdmin):
change_list_template = "admin/TEKDB/places/change_list.html"

def changelist_view(self, request, extra_context=None):
from .views import getPlacesGeoJSON
from .views import get_places_geojson
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I renamed the function to snake case instead of camel case to follow convention.


extra_context = extra_context or {}
extra_context["results_geojson"] = getPlacesGeoJSON(request)
extra_context["results_geojson"] = get_places_geojson(request)
return super(PlacesAdmin, self).changelist_view(
request, extra_context=extra_context
)
Expand Down
32 changes: 14 additions & 18 deletions TEKDB/TEKDB/context_processors.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,24 +32,20 @@ def search_settings(request=None):
pass

if configs:
try:
min_search_rank = (
configs.min_search_rank
if configs.min_search_rank
else search_config["MIN_SEARCH_RANK"]
)
min_search_similarity = (
configs.min_search_similarity
if configs.min_search_similarity
else search_config["MIN_SEARCH_SIMILARITY"]
)
search_config = {
"MIN_SEARCH_RANK": min_search_rank,
"MIN_SEARCH_SIMILARITY": min_search_similarity,
}
except Exception:
print("No min_search_rank or min_search_similarity in Configuration")
pass
min_search_rank = (
configs.min_search_rank
if configs.min_search_rank
else search_config["MIN_SEARCH_RANK"]
)
min_search_similarity = (
configs.min_search_similarity
if configs.min_search_similarity
else search_config["MIN_SEARCH_SIMILARITY"]
)
search_config = {
"MIN_SEARCH_RANK": min_search_rank,
"MIN_SEARCH_SIMILARITY": min_search_similarity,
}

return search_config

Expand Down
80 changes: 3 additions & 77 deletions TEKDB/TEKDB/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ def run_keyword_search(model, keyword, fields, fk_fields, weight_lookup, sort_fi
annotations[f"headline_{relationship_name}"] = SearchHeadline(
relationship_name, query, start_sel="<b class='highlight'>", stop_sel="</b>"
)
# vector is only false if we have no fields to look through.
# Thus far we don't have any models that only search through fk fields.
if not vector:
vector = SearchVector(relationship_name, weight=weight_lookup[val[0]])
else:
Expand Down Expand Up @@ -715,11 +717,6 @@ def get_response_format(self):
"feature": feature,
}

# def get_record_dict(self, user, srid=3857):
# record_dict = super(Places, self).get_record_dict(user, srid)
# record_dict['map_pin'] = settings.RECORD_ICONS['map_pin']
# return record_dict

def get_related_objects(self, object_id):
# place = Places.objects.get(pk=object_id)
alt_names = self.placealtindigenousname_set.all()
Expand Down Expand Up @@ -869,38 +866,6 @@ def keyword_search(
return run_keyword_search(
Resources, keyword, fields, fk_fields, weight_lookup, sort_field
)
################################
# NEW APPROACH #################
################################
# vector = SearchVector('commonname', weight='A') + \
# SearchVector('indigenousname', weight='A') + \
# SearchVector('resourceclassificationgroup__resourceclassificationgroup', weight='B') + \
# SearchVector('genus', weight='C') + \
# SearchVector('species', weight='C')
# #HoW TO GET Alt Names?)
# query = SearchQuery(keyword)
# similarity=TrigramSimilarity('commonname', keyword, weight='A') + \
# TrigramSimilarity('indigenousname', keyword, weight='A') + \
# TrigramSimilarity('resourceclassificationgroup__resourceclassificationgroup', keyword, weight='B') + \
# TrigramSimilarity('genus', keyword, weight='C') + \
# TrigramSimilarity('species', keyword, weight='C')

################################
# OLD APPROACH #################
################################
# group_qs = LookupResourceGroup.objects.filter(resourceclassificationgroup__icontains=keyword)
# group_loi = [group.pk for group in group_qs]
# alt_name_qs = ResourceAltIndigenousName.objects.filter(altindigenousname__icontains=keyword)
# alt_name_loi = [ran.resourceid.pk for ran in alt_name_qs]
#
# return Resources.objects.filter(
# Q(commonname__icontains=keyword) |
# Q(indigenousname__icontains=keyword) |
# Q(genus__icontains=keyword) |
# Q(species__icontains=keyword) |
# Q(resourceclassificationgroup__in=group_loi) |
# Q(pk__in=alt_name_loi)
# )

def image(self):
return settings.RECORD_ICONS["resource"]
Expand Down Expand Up @@ -1179,10 +1144,8 @@ class Meta:
def keyword_search(keyword):
resource_qs = Resources.keyword_search(keyword)
resource_loi = [resource.pk for resource in resource_qs]

place_qs = Places.keyword_search(keyword)
place_loi = [place.pk for place in place_qs]

part_qs = LookupPartUsed.objects.filter(partused__icontains=keyword)
part_loi = [part.pk for part in part_qs]

Expand All @@ -1194,7 +1157,6 @@ def keyword_search(keyword):

timing_qs = LookupTiming.objects.filter(timing__icontains=keyword)
timing_loi = [timing.pk for timing in timing_qs]

return PlacesResourceEvents.objects.filter(
Q(resourceid__in=resource_loi)
| Q(placeid__in=place_loi)
Expand Down Expand Up @@ -1555,42 +1517,6 @@ def keyword_search(
sort_field,
)

# def keyword_search(keyword):
# placeresource_qs = PlacesResourceEvents.keyword_search(keyword)
# placeresource_loi = [placeresource.pk for placeresource in placeresource_qs]

# part_qs = LookupPartUsed.objects.filter(partused__icontains=keyword)
# part_loi = [part.pk for part in part_qs]

# activity_qs = LookupActivity.objects.filter(activity__icontains=keyword)
# activity_loi = [activity.pk for activity in activity_qs]

# participant_qs = LookupParticipants.objects.filter(participants__icontains=keyword)
# participant_loi = [participant.pk for participant in participant_qs]

# technique_qs = LookupTechniques.objects.filter(techniques__icontains=keyword)
# technique_loi = [technique.pk for technique in technique_qs]

# use_qs = LookupCustomaryUse.objects.filter(usedfor__icontains=keyword)
# use_loi = [use.pk for use in use_qs]

# timing_qs = LookupTiming.objects.filter(timing__icontains=keyword)
# timing_loi = [timing.pk for timing in timing_qs]

# return ResourcesActivityEvents.objects.filter(
# Q(placeresourceid__in=placeresource_loi) |
# Q(relationshipdescription__icontains=keyword) |
# Q(partused__in=part_loi) |
# Q(activityshortdescription__in=activity_loi) |
# Q(activitylongdescription__icontains=keyword) |
# Q(participants__in=participant_loi) |
# Q(technique__in=technique_loi) |
# Q(gear__icontains=keyword) |
# Q(customaryuse__in=use_loi) |
# Q(timing__in=timing_loi) |
# Q(timingdescription__icontains=keyword)
# )

def image(self):
return settings.RECORD_ICONS["activity"]

Expand Down Expand Up @@ -1776,7 +1702,7 @@ def relationships(self):
relationship_list = []
interviewee_citations = [x.get_query_json() for x in self.interviewee.all()]
interviewer_citations = [x.get_query_json() for x in self.interviewer.all()]
# citations = list(set(interviewee_citations) | set(interviewer_citations))

if len(interviewee_citations) > 0:
relationship_list.append(
{"key": "Sources as interviewee", "value": interviewee_citations}
Expand Down
Loading