Skip to content

Commit

Permalink
- Updating based on comments.
Browse files Browse the repository at this point in the history
- Added base class to keep things a little more DRY
  • Loading branch information
elipe17 committed Jul 14, 2023
1 parent cb5077c commit d0441b7
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 135 deletions.
2 changes: 1 addition & 1 deletion tdrs-backend/tdpservice/search_indexes/admin/filter.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def choices(self, cl):

def queryset(self, request, queryset):
"""Sort queryset to show latest records."""
if self.value() is None and len(queryset):
if self.value() is None and queryset.exists():
max_date = DataFile.objects.all().latest('created_at').created_at
datafile = DataFile.objects.get(created_at=max_date)
return queryset.filter(datafile=datafile)
Expand Down
19 changes: 19 additions & 0 deletions tdrs-backend/tdpservice/search_indexes/documents/document_base.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
"""Elasticsearch base document mappings."""

from django_elasticsearch_dsl import fields
from tdpservice.data_files.models import DataFile

class DocumentBase:
"""Elastic search model mapping for a parsed SSP M1 data file."""

datafile = fields.ObjectField(properties={
'pk': fields.IntegerField(),
'created_at': fields.DateField(),
'version': fields.IntegerField(),
'quarter': fields.TextField()
})

def get_instances_from_related(self, related_instance):
"""Return correct instance."""
if isinstance(related_instance, DataFile):
return related_instance
46 changes: 5 additions & 41 deletions tdrs-backend/tdpservice/search_indexes/documents/ssp.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,15 @@
"""Elasticsearch document mappings for SSP submission models."""

from django_elasticsearch_dsl import Document, fields
from django_elasticsearch_dsl import Document
from django_elasticsearch_dsl.registries import registry
from ..models.ssp import SSP_M1, SSP_M2, SSP_M3
from tdpservice.data_files.models import DataFile
from .document_base import DocumentBase

@registry.register_document
class SSP_M1DataSubmissionDocument(Document):
class SSP_M1DataSubmissionDocument(DocumentBase, Document):
"""Elastic search model mapping for a parsed SSP M1 data file."""

datafile = fields.ObjectField(properties={
'pk': fields.IntegerField(),
'created_at': fields.DateField(),
'version': fields.IntegerField(),
'quarter': fields.TextField()
})

def get_instances_from_related(self, related_instance):
"""Return correct instance."""
if isinstance(related_instance, DataFile):
return related_instance

class Index:
"""ElasticSearch index generation settings."""

Expand Down Expand Up @@ -82,22 +71,9 @@ class Django:


@registry.register_document
class SSP_M2DataSubmissionDocument(Document):
class SSP_M2DataSubmissionDocument(DocumentBase, Document):
"""Elastic search model mapping for a parsed SSP M2 data file."""

datafile = fields.ObjectField(properties={
'pk': fields.IntegerField(),
'created_at': fields.DateField(),
'version': fields.IntegerField(),
'quarter': fields.TextField()
})

def get_instances_from_related(self, related_instance):
"""Return correct instance."""
"""Return correct instance."""
if isinstance(related_instance, DataFile):
return related_instance

class Index:
"""ElasticSearch index generation settings."""

Expand Down Expand Up @@ -183,21 +159,9 @@ class Django:


@registry.register_document
class SSP_M3DataSubmissionDocument(Document):
class SSP_M3DataSubmissionDocument(DocumentBase, Document):
"""Elastic search model mapping for a parsed SSP M3 data file."""

datafile = fields.ObjectField(properties={
'pk': fields.IntegerField(),
'created_at': fields.DateField(),
'version': fields.IntegerField(),
'quarter': fields.TextField()
})

def get_instances_from_related(self, related_instance):
"""Return correct instance."""
if isinstance(related_instance, DataFile):
return related_instance

class Index:
"""ElasticSearch index generation settings."""

Expand Down
102 changes: 9 additions & 93 deletions tdrs-backend/tdpservice/search_indexes/documents/tanf.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,14 @@
"""Elasticsearch document mappings for TANF submission models."""

from django_elasticsearch_dsl import Document, fields
from django_elasticsearch_dsl import Document
from django_elasticsearch_dsl.registries import registry
from ..models.tanf import TANF_T1, TANF_T2, TANF_T3, TANF_T4, TANF_T5, TANF_T6, TANF_T7
from tdpservice.data_files.models import DataFile
from .document_base import DocumentBase

@registry.register_document
class TANF_T1DataSubmissionDocument(Document):
class TANF_T1DataSubmissionDocument(DocumentBase, Document):
"""Elastic search model mapping for a parsed TANF T1 data file."""

datafile = fields.ObjectField(properties={
'pk': fields.IntegerField(),
'created_at': fields.DateField(),
'version': fields.IntegerField(),
'quarter': fields.TextField()
})

def get_instances_from_related(self, related_instance):
"""Return correct instance."""
if isinstance(related_instance, DataFile):
return related_instance

class Index:
"""ElasticSearch index generation settings."""

Expand Down Expand Up @@ -84,21 +72,9 @@ class Django:


@registry.register_document
class TANF_T2DataSubmissionDocument(Document):
class TANF_T2DataSubmissionDocument(DocumentBase, Document):
"""Elastic search model mapping for a parsed TANF T2 data file."""

datafile = fields.ObjectField(properties={
'pk': fields.IntegerField(),
'created_at': fields.DateField(),
'version': fields.IntegerField(),
'quarter': fields.TextField()
})

def get_instances_from_related(self, related_instance):
"""Return correct instance."""
if isinstance(related_instance, DataFile):
return related_instance

class Index:
"""ElasticSearch index generation settings."""

Expand Down Expand Up @@ -186,21 +162,9 @@ class Django:


@registry.register_document
class TANF_T3DataSubmissionDocument(Document):
class TANF_T3DataSubmissionDocument(DocumentBase, Document):
"""Elastic search model mapping for a parsed TANF T3 data file."""

datafile = fields.ObjectField(properties={
'pk': fields.IntegerField(),
'created_at': fields.DateField(),
'version': fields.IntegerField(),
'quarter': fields.TextField()
})

def get_instances_from_related(self, related_instance):
"""Return correct instance."""
if isinstance(related_instance, DataFile):
return related_instance

class Index:
"""ElasticSearch index generation settings."""

Expand Down Expand Up @@ -240,21 +204,9 @@ class Django:


@registry.register_document
class TANF_T4DataSubmissionDocument(Document):
class TANF_T4DataSubmissionDocument(DocumentBase, Document):
"""Elastic search model mapping for a parsed TANF T4 data file."""

datafile = fields.ObjectField(properties={
'pk': fields.IntegerField(),
'created_at': fields.DateField(),
'version': fields.IntegerField(),
'quarter': fields.TextField()
})

def get_instances_from_related(self, related_instance):
"""Return correct instance."""
if isinstance(related_instance, DataFile):
return related_instance

class Index:
"""ElasticSearch index generation settings."""

Expand Down Expand Up @@ -287,21 +239,9 @@ class Django:


@registry.register_document
class TANF_T5DataSubmissionDocument(Document):
class TANF_T5DataSubmissionDocument(DocumentBase, Document):
"""Elastic search model mapping for a parsed TANF T5 data file."""

datafile = fields.ObjectField(properties={
'pk': fields.IntegerField(),
'created_at': fields.DateField(),
'version': fields.IntegerField(),
'quarter': fields.TextField()
})

def get_instances_from_related(self, related_instance):
"""Return correct instance."""
if isinstance(related_instance, DataFile):
return related_instance

class Index:
"""ElasticSearch index generation settings."""

Expand Down Expand Up @@ -350,21 +290,9 @@ class Django:


@registry.register_document
class TANF_T6DataSubmissionDocument(Document):
class TANF_T6DataSubmissionDocument(DocumentBase, Document):
"""Elastic search model mapping for a parsed TANF T6 data file."""

datafile = fields.ObjectField(properties={
'pk': fields.IntegerField(),
'created_at': fields.DateField(),
'version': fields.IntegerField(),
'quarter': fields.TextField()
})

def get_instances_from_related(self, related_instance):
"""Return correct instance."""
if isinstance(related_instance, DataFile):
return related_instance

class Index:
"""ElasticSearch index generation settings."""

Expand Down Expand Up @@ -402,21 +330,9 @@ class Django:


@registry.register_document
class TANF_T7DataSubmissionDocument(Document):
class TANF_T7DataSubmissionDocument(DocumentBase, Document):
"""Elastic search model mapping for a parsed TANF T7 data file."""

datafile = fields.ObjectField(properties={
'pk': fields.IntegerField(),
'created_at': fields.DateField(),
'version': fields.IntegerField(),
'quarter': fields.TextField()
})

def get_instances_from_related(self, related_instance):
"""Return correct instance."""
if isinstance(related_instance, DataFile):
return related_instance

class Index:
"""ElasticSearch index generation settings."""

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,7 @@ def test_can_create_and_index_tanf_t7_submission(test_datafile):

submission.save()

# No checks her because t7 records can't be parsed currently.
# assert submission.id is not None

# search = documents.tanf.TANF_T7DataSubmissionDocument.search().query(
Expand Down

0 comments on commit d0441b7

Please sign in to comment.