(self, obj)
| 1035 | } |
| 1036 | ) |
| 1037 | def get_method_rates(self, obj): |
| 1038 | # Get encounters related to this area and pull out unique encounter methods |
| 1039 | encounter_rates = LocationAreaEncounterRate.objects.filter( |
| 1040 | location_area=obj |
| 1041 | ).order_by("encounter_method_id") |
| 1042 | method_ids = encounter_rates.values("encounter_method_id").distinct() |
| 1043 | encounter_rate_list = [] |
| 1044 | |
| 1045 | for id in method_ids: |
| 1046 | encounter_rate_details = OrderedDict() |
| 1047 | |
| 1048 | # Get each Unique Item by ID |
| 1049 | encounter_method_object = EncounterMethod.objects.get( |
| 1050 | pk=id["encounter_method_id"] |
| 1051 | ) |
| 1052 | encounter_method_data = EncounterMethodSummarySerializer( |
| 1053 | encounter_method_object, context=self.context |
| 1054 | ).data |
| 1055 | encounter_rate_details["encounter_method"] = encounter_method_data |
| 1056 | |
| 1057 | # Get Versions associated with each unique item |
| 1058 | area_encounter_objects = encounter_rates.filter( |
| 1059 | encounter_method_id=id["encounter_method_id"] |
| 1060 | ) |
| 1061 | serializer = LocationAreaEncounterRateSerializer( |
| 1062 | area_encounter_objects, many=True, context=self.context |
| 1063 | ) |
| 1064 | encounter_rate_details["version_details"] = [] |
| 1065 | |
| 1066 | for area_encounter in serializer.data: |
| 1067 | version_detail = OrderedDict() |
| 1068 | |
| 1069 | version_detail["rate"] = area_encounter["rate"] |
| 1070 | version_detail["version"] = area_encounter["version"] |
| 1071 | |
| 1072 | encounter_rate_details["version_details"].append(version_detail) |
| 1073 | |
| 1074 | encounter_rate_list.append(encounter_rate_details) |
| 1075 | |
| 1076 | return encounter_rate_list |
| 1077 | |
| 1078 | @extend_schema_field( |
| 1079 | field={ |
nothing calls this directly
no test coverage detected