django-smartbase-admin 0.2.89__py3-none-any.whl → 0.2.90__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -326,12 +326,19 @@ class DateFilterWidget(SBAdminFilterWidget):
326
326
  shortcuts[key].append(self.process_shortcut(shortcut, now))
327
327
  return shortcuts
328
328
 
329
+ def get_default_label(self):
330
+ if self.default_value_shortcut_index is not None:
331
+ return self.get_shortcuts()[self.default_value_shortcut_index]["label"]
332
+ return super().get_default_value()
333
+
329
334
  def get_default_value(self):
330
335
  if self.default_value_shortcut_index is not None:
331
336
  selected_shortcut_value = self.get_shortcuts()[
332
337
  self.default_value_shortcut_index
333
338
  ]["value"]
334
- return self.get_value_from_date_or_range(selected_shortcut_value)
339
+ return SBAdminViewService.json_dumps_for_url(
340
+ self.get_value_from_date_or_range(selected_shortcut_value)
341
+ )
335
342
  return super().get_default_value()
336
343
 
337
344
  def get_data(self):
@@ -374,9 +381,14 @@ class DateFilterWidget(SBAdminFilterWidget):
374
381
  return [None, None]
375
382
  date_format = cls.DATE_FORMAT
376
383
  if type(filter_value) is list:
384
+ if type(filter_value[0]) is int:
385
+ return [
386
+ timezone.now() + timedelta(days=filter_value[0]),
387
+ timezone.now() + timedelta(days=filter_value[1]),
388
+ ]
377
389
  return [
378
- timezone.now() + timedelta(days=filter_value[0]),
379
- timezone.now() + timedelta(days=filter_value[1]),
390
+ datetime.strptime(filter_value[0], date_format),
391
+ datetime.strptime(filter_value[1], date_format),
380
392
  ]
381
393
  try:
382
394
  days_range = json.loads(filter_value)
@@ -397,9 +409,11 @@ class DateFilterWidget(SBAdminFilterWidget):
397
409
  def get_value_from_date_or_range(cls, date_or_range):
398
410
  if not isinstance(date_or_range, list):
399
411
  return datetime.strftime(date_or_range, cls.DATE_FORMAT)
412
+ if type(date_or_range[0]) is int:
413
+ return date_or_range
400
414
  date_from = datetime.strftime(date_or_range[0], cls.DATE_FORMAT)
401
415
  date_to = datetime.strftime(date_or_range[1], cls.DATE_FORMAT)
402
- return f"{date_from}{cls.DATE_RANGE_SPLIT}{date_to}"
416
+ return [date_from, date_to]
403
417
 
404
418
  def parse_value_from_input(self, request, filter_value):
405
419
  return self.get_range_from_value(filter_value)