Source code for django_odm2.querysets
import datetime
from django.db import models
from django.db.models import Q
[docs]class ODM2QuerySet(models.QuerySet):
[docs] def for_display(self):
return self.all()
for_display.queryset_only = True
[docs]class AffiliationQuerySet(ODM2QuerySet):
[docs] def for_display(self):
return self.select_related('person').prefetch_related('organization')
[docs]class OrganizationQuerySet(ODM2QuerySet):
[docs] def exclude_vendors(self):
return self.exclude(organization_type__in=['Vendor', 'Manufacturer'])
[docs] def only_vendors(self):
return self.filter(organization_type__in=['Vendor', 'Manufacturer'])
[docs]class MethodQuerySet(ODM2QuerySet):
[docs] def instrument_deployment_methods(self):
return self.filter(method_type='Instrument deployment')
[docs]class ActionQuerySet(ODM2QuerySet):
[docs] def deployments(self):
return self.filter(
Q(action_type='Equipment deployment')
| Q(action_type='Instrument deployment')
)
[docs] def equipment_deployments(self):
return self.filter(action_type='Equipment deployment')
[docs] def instrument_deployments(self):
return self.filter(action_type='Instrument deployment')
[docs]class ActionByQuerySet(ODM2QuerySet):
[docs] def for_display(self):
return self.select_related('action').prefetch_related(
'affiliation__person', 'affiliation__organization'
)
[docs]class FeatureActionQuerySet(ODM2QuerySet):
[docs] def for_display(self):
return self.select_related('action').prefetch_related(
'sampling_feature'
)
[docs] def with_results(self):
return self.prefetch_related(
'results__timeseriesresult__values',
'results__variable',
'results__unit',
)
[docs]class ResultManager(models.Manager):
[docs] def get_queryset(self):
queryset = super(ResultManager, self).get_queryset()
return queryset.prefetch_related(
'variable', 'unit', 'taxonomic_classifier', 'processing_level'
)
[docs]class DataLoggerFileManager(models.Manager):
[docs] def get_queryset(self):
queryset = super(DataLoggerFileManager, self).get_queryset()
return queryset.prefetch_related('program')
[docs]class DataLoggerFileColumnManager(models.Manager):
[docs] def get_queryset(self):
queryset = super(DataLoggerFileColumnManager, self).get_queryset()
return queryset.DataLoggerFileColumnManager('result')
# endregion
# region ODM2 Equipment Extension
[docs]class EquipmentModelQuerySet(ODM2QuerySet):
[docs] def for_display(self):
return self.prefetch_related('model_manufacturer')
[docs]class InstrumentOutputVariableManager(models.Manager):
[docs] def get_queryset(self):
queryset = super(InstrumentOutputVariableManager, self).get_queryset()
return queryset.prefetch_related(
'model',
'variable',
'instrument_method',
'instrument_raw_output_unit',
)
[docs]class EquipmentManager(models.Manager):
[docs] def get_queryset(self):
queryset = super(EquipmentManager, self).get_queryset()
return queryset.prefetch_related(
'equipment_model', 'equipment_owner', 'equipment_vendor'
)
[docs]class CalibrationReferenceEquipmentManager(models.Manager):
[docs] def get_queryset(self):
queryset = super(
CalibrationReferenceEquipmentManager, self
).get_queryset()
return queryset.prefetch_related('action', 'equipment')
[docs]class EquipmentUsedManager(models.Manager):
[docs] def get_queryset(self):
queryset = super(EquipmentUsedManager, self).get_queryset()
return queryset.prefetch_related('action', 'equipment')
[docs]class MaintenanceActionManager(models.Manager):
[docs] def get_queryset(self):
queryset = super(MaintenanceActionManager, self).get_queryset()
return queryset.prefetch_related('action')
[docs]class CalibrationActionManager(models.Manager):
[docs] def get_queryset(self):
queryset = super(CalibrationActionManager, self).get_queryset()
return queryset.prefetch_related('instrument_output_variable')
# endregion
[docs]class TimeSeriesValuesQuerySet(ODM2QuerySet):
[docs] def recent(self):
return self.filter(
value_datetime__gte=datetime.datetime.now()
- datetime.timedelta(days=1)
)