in gnm_deliverables/views/deliverables_dash_views.py [0:0]
def get_queryset(self):
"""
build a queryset from the provided parameters.
Parameters are expected as GET request params:
- startDate: (ISO datetime)
- endDate: (ISO datetime)
[- deliverableType is done in frontend]
- atomId: (string)
- types: "fullmasters"|"all"
:return:
"""
end_date = datetime.now()
start_date = end_date.replace(day=1, hour=23, minute=59, second=59, microsecond=999)
if "startDate" in self.request.GET:
try:
start_date = parse_date(self.request.GET["startDate"])
except Exception as err:
logger.warning("Could not parse provided string {0} as a date: {1}".format(start_date, err))
if "endDate" in self.request.GET:
try:
end_date = parse_date(self.request.GET["endDate"])
except Exception as err:
logger.warning("Could not parse provided string {0} as a date: {1}".format(end_date, err))
queryset = DeliverableAsset.objects.select_related().filter(changed_dt__gte=start_date,
changed_dt__lte=end_date)
if "types" in self.request.GET and self.request.GET["types"] != "all":
queryset = queryset.filter(type=self.typeForString(self.request.GET["types"]))
if "q" in self.request.GET and self.request.GET["q"] != "":
queryset = queryset.filter(filename__icontains=self.request.GET["q"])
if "atomId" in self.request.GET:
queryset = GNMWebsite.objects.select_related().filter(media_atom_id=self.request.GET["atomId"])
return queryset.order_by("-changed_dt")[0:100]