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 RelatedActionManager(models.Manager):
[docs] def get_queryset(self): queryset = super(RelatedActionManager, self).get_queryset() return queryset.prefetch_related('related_action', 'action')
[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 RelatedEquipmentManager(models.Manager):
[docs] def get_queryset(self): queryset = super(RelatedEquipmentManager, self).get_queryset() return queryset.prefetch_related('equipment', 'related_equipment')
[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) )