diff --git a/src/submissions/backend/db/models/__init__.py b/src/submissions/backend/db/models/__init__.py index 6adcc54..113d2e0 100644 --- a/src/submissions/backend/db/models/__init__.py +++ b/src/submissions/backend/db/models/__init__.py @@ -554,7 +554,7 @@ class BaseClass(Base): output_date = datetime.combine(output_date, addition_time).strftime("%Y-%m-%d %H:%M:%S") return output_date - def details_dict(self, expand_children: list = []): + def details_dict(self): relevant = {k: v for k, v in self.__class__.__dict__.items() if isinstance(v, InstrumentedAttribute) or isinstance(v, AssociationProxy)} output = {} diff --git a/src/submissions/backend/db/models/kits.py b/src/submissions/backend/db/models/kits.py index 4b160af..a18fad5 100644 --- a/src/submissions/backend/db/models/kits.py +++ b/src/submissions/backend/db/models/kits.py @@ -1418,7 +1418,7 @@ class Procedure(BaseClass): def delete(self, obj): logger.debug("Delete!") - def details_dict(self): + def details_dict(self, **kwargs): output = super().details_dict() output['kittype'] = output['kittype'].details_dict() output['proceduretype'] = output['proceduretype'].details_dict() @@ -1882,7 +1882,7 @@ class ProcedureReagentAssociation(BaseClass): from backend.validators import PydReagent return PydReagent(**self.to_sub_dict(kittype=kittype)) - def details_dict(self): + def details_dict(self, **kwargs): output = super().details_dict() # NOTE: Figure out how to merge the misc_info if doing .update instead. relevant = {k: v for k, v in output.items() if k not in ['reagent']} @@ -2337,7 +2337,7 @@ class ProcedureEquipmentAssociation(BaseClass): query = query.filter(cls.equipmentrole == equipmentrole) return cls.execute_query(query=query, limit=limit, **kwargs) - def details_dict(self): + def details_dict(self, **kwargs): output = super().details_dict() # NOTE: Figure out how to merge the misc_info if doing .update instead. relevant = {k: v for k, v in output.items() if k not in ['equipment']} @@ -2814,6 +2814,16 @@ class ProcedureTipsAssociation(BaseClass): from backend.validators import PydTips return PydTips(name=self.tips.name, lot=self.tips.lot, role=self.role_name) + def details_dict(self, **kwargs): + output = super().details_dict() + # NOTE: Figure out how to merge the misc_info if doing .update instead. + relevant = {k: v for k, v in output.items() if k not in ['tips']} + output = output['tips'].details_dict() + misc = output['_misc_info'] + output.update(relevant) + output['_misc_info'] = misc + return output + class Results(BaseClass): diff --git a/src/submissions/backend/db/models/submissions.py b/src/submissions/backend/db/models/submissions.py index 435e9e1..9098695 100644 --- a/src/submissions/backend/db/models/submissions.py +++ b/src/submissions/backend/db/models/submissions.py @@ -333,6 +333,7 @@ class ClientSubmission(BaseClass, LogMixin): output['submissiontype'] = output['submissiontype'].details_dict() output['run'] = [run.details_dict() for run in output['run']] output['sample'] = [sample.details_dict() for sample in output['clientsubmissionsampleassociation']] + output['name'] = self.name return output @@ -590,7 +591,7 @@ class Run(BaseClass, LogMixin): output["completed_date"] = self.completed_date return output - def details_dict(self): + def details_dict(self, **kwargs): output = super().details_dict() output['sample'] = [sample.details_dict() for sample in output['runsampleassociation']] output['procedure'] = [procedure.details_dict() for procedure in output['procedure']] @@ -1636,7 +1637,7 @@ class ClientSubmissionSampleAssociation(BaseClass): sample['submission_rank'] = self.submission_rank return sample - def details_dict(self): + def details_dict(self, **kwargs): output = super().details_dict() # NOTE: Figure out how to merge the misc_info if doing .update instead. relevant = {k: v for k, v in output.items() if k not in ['sample']} @@ -2055,7 +2056,7 @@ class RunSampleAssociation(BaseClass): def delete(self): raise AttributeError(f"Delete not implemented for {self.__class__}") - def details_dict(self): + def details_dict(self, **kwargs): output = super().details_dict() # NOTE: Figure out how to merge the misc_info if doing .update instead. relevant = {k: v for k, v in output.items() if k not in ['sample']} @@ -2126,7 +2127,7 @@ class ProcedureSampleAssociation(BaseClass): logger.error(f"Problem incrementing id: {e}") return 1 - def details_dict(self): + def details_dict(self, **kwargs): output = super().details_dict() # NOTE: Figure out how to merge the misc_info if doing .update instead. relevant = {k: v for k, v in output.items() if k not in ['sample']} diff --git a/src/submissions/templates/details.html b/src/submissions/templates/details.html index 43e4ba5..8edfce9 100644 --- a/src/submissions/templates/details.html +++ b/src/submissions/templates/details.html @@ -7,13 +7,11 @@ {% endif %} {% endblock %} - {% block body %}