Refactoring names
This commit is contained in:
@@ -15,9 +15,9 @@ class Migration(migrations.Migration):
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="savedview",
|
||||
name="dashboard_view_mode",
|
||||
name="display_mode",
|
||||
field=models.CharField(
|
||||
choices=[("table", "Table"), ("small_cards", "Small Cards")],
|
||||
choices=[("table", "Table"), ("smallCards", "Small Cards")],
|
||||
default="table",
|
||||
max_length=128,
|
||||
verbose_name="Dashboard view display mode",
|
||||
@@ -25,7 +25,7 @@ class Migration(migrations.Migration):
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="savedview",
|
||||
name="dashboard_view_limit",
|
||||
name="page_size",
|
||||
field=models.PositiveIntegerField(
|
||||
default=10,
|
||||
validators=[django.core.validators.MinValueValidator(1)],
|
||||
|
||||
@@ -542,7 +542,7 @@ class DynamicMultiSelectField(MultiSelectField):
|
||||
if self.dynamic_choices:
|
||||
for key, model in self.dynamic_choices:
|
||||
try:
|
||||
for obj in model.objects.all():
|
||||
for obj in model.objects.all(): # pragma: no cover
|
||||
value.append((key % obj.pk, obj.name))
|
||||
except Exception:
|
||||
pass
|
||||
@@ -552,11 +552,11 @@ class DynamicMultiSelectField(MultiSelectField):
|
||||
|
||||
|
||||
class SavedView(ModelWithOwner):
|
||||
class DashboardViewDisplayMode(models.TextChoices):
|
||||
class ViewDisplayMode(models.TextChoices):
|
||||
TABLE = ("table", _("Table"))
|
||||
SMALL_CARDS = ("small_cards", _("Small Cards"))
|
||||
SMALL_CARDS = ("smallCards", _("Small Cards"))
|
||||
|
||||
class DashboardViewTableColumns(models.TextChoices):
|
||||
class DocumentDisplayFields(models.TextChoices):
|
||||
TITLE = ("title", _("Title"))
|
||||
CREATED = ("created", _("Created"))
|
||||
ADDED = ("added", _("Added"))
|
||||
@@ -565,7 +565,7 @@ class SavedView(ModelWithOwner):
|
||||
CORRESPONDENT = ("correspondent", _("Correspondent"))
|
||||
STORAGE_PATH = ("storagepath", _("Storage Path"))
|
||||
|
||||
class DashboardViewDynamicTableColumns:
|
||||
class DynamicDocumentDisplayFields:
|
||||
CUSTOM_FIELD = ("custom_field_%d", CustomField)
|
||||
|
||||
name = models.CharField(_("name"), max_length=128)
|
||||
@@ -585,25 +585,25 @@ class SavedView(ModelWithOwner):
|
||||
)
|
||||
sort_reverse = models.BooleanField(_("sort reverse"), default=False)
|
||||
|
||||
dashboard_view_limit = models.PositiveIntegerField(
|
||||
_("Dashboard view limit"),
|
||||
page_size = models.PositiveIntegerField(
|
||||
_("View page size"),
|
||||
default=10,
|
||||
validators=[MinValueValidator(1)],
|
||||
)
|
||||
|
||||
dashboard_view_mode = models.CharField(
|
||||
display_mode = models.CharField(
|
||||
max_length=128,
|
||||
verbose_name=_("Dashboard view display mode"),
|
||||
choices=DashboardViewDisplayMode.choices,
|
||||
default=DashboardViewDisplayMode.TABLE,
|
||||
verbose_name=_("View display mode"),
|
||||
choices=ViewDisplayMode.choices,
|
||||
default=ViewDisplayMode.TABLE,
|
||||
)
|
||||
|
||||
document_display_fields = DynamicMultiSelectField(
|
||||
max_length=128,
|
||||
verbose_name=_("Document display fields"),
|
||||
choices=DashboardViewTableColumns.choices,
|
||||
dyanmic_choices=[DashboardViewDynamicTableColumns.CUSTOM_FIELD],
|
||||
default=f"{DashboardViewTableColumns.CREATED},{DashboardViewTableColumns.TITLE},{DashboardViewTableColumns.TAGS},{DashboardViewTableColumns.CORRESPONDENT}",
|
||||
choices=DocumentDisplayFields.choices,
|
||||
dyanmic_choices=[DynamicDocumentDisplayFields.CUSTOM_FIELD],
|
||||
default=f"{DocumentDisplayFields.CREATED},{DocumentDisplayFields.TITLE},{DocumentDisplayFields.TAGS},{DocumentDisplayFields.CORRESPONDENT}",
|
||||
)
|
||||
|
||||
class Meta:
|
||||
|
||||
@@ -828,12 +828,8 @@ class DynamicOrderedMultipleChoiceField(fields.MultipleChoiceField):
|
||||
choices = property(_get_choices, _set_choices)
|
||||
|
||||
def to_internal_value(self, data):
|
||||
super().to_internal_value(data)
|
||||
# MultipleChoiceField doesn't preserve order, so we use an array
|
||||
if isinstance(data, str) or not hasattr(data, "__iter__"):
|
||||
self.fail("not_a_list", input_type=type(data).__name__)
|
||||
if not self.allow_empty and len(data) == 0:
|
||||
self.fail("empty")
|
||||
|
||||
return [fields.ChoiceField.to_internal_value(self, item) for item in data]
|
||||
|
||||
def to_representation(self, value):
|
||||
@@ -844,7 +840,7 @@ class DynamicOrderedMultipleChoiceField(fields.MultipleChoiceField):
|
||||
class SavedViewSerializer(OwnedObjectSerializer):
|
||||
filter_rules = SavedViewFilterRuleSerializer(many=True)
|
||||
document_display_fields = DynamicOrderedMultipleChoiceField(
|
||||
choices=SavedView.DashboardViewTableColumns.choices,
|
||||
choices=SavedView.DocumentDisplayFields.choices,
|
||||
dyanmic_choices=[("custom_field_%d", CustomField)],
|
||||
required=False,
|
||||
)
|
||||
@@ -859,8 +855,8 @@ class SavedViewSerializer(OwnedObjectSerializer):
|
||||
"sort_field",
|
||||
"sort_reverse",
|
||||
"filter_rules",
|
||||
"dashboard_view_limit",
|
||||
"dashboard_view_mode",
|
||||
"page_size",
|
||||
"display_mode",
|
||||
"document_display_fields",
|
||||
"owner",
|
||||
"permissions",
|
||||
|
||||
@@ -1670,11 +1670,11 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
"show_in_sidebar": True,
|
||||
"sort_field": "created2",
|
||||
"filter_rules": [{"rule_type": 4, "value": "test"}],
|
||||
"dashboard_view_limit": 20,
|
||||
"dashboard_view_mode": SavedView.DashboardViewDisplayMode.SMALL_CARDS,
|
||||
"page_size": 20,
|
||||
"display_mode": SavedView.ViewDisplayMode.SMALL_CARDS,
|
||||
"document_display_fields": [
|
||||
SavedView.DashboardViewTableColumns.TITLE,
|
||||
SavedView.DashboardViewTableColumns.CREATED,
|
||||
SavedView.DocumentDisplayFields.TITLE,
|
||||
SavedView.DocumentDisplayFields.CREATED,
|
||||
],
|
||||
}
|
||||
|
||||
@@ -1682,16 +1682,16 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||
|
||||
v1 = SavedView.objects.get(name="test")
|
||||
self.assertEqual(v1.dashboard_view_limit, 20)
|
||||
self.assertEqual(v1.page_size, 20)
|
||||
self.assertEqual(
|
||||
v1.dashboard_view_mode,
|
||||
SavedView.DashboardViewDisplayMode.SMALL_CARDS,
|
||||
v1.display_mode,
|
||||
SavedView.ViewDisplayMode.SMALL_CARDS,
|
||||
)
|
||||
self.assertEqual(
|
||||
v1.document_display_fields,
|
||||
[
|
||||
SavedView.DashboardViewTableColumns.TITLE,
|
||||
SavedView.DashboardViewTableColumns.CREATED,
|
||||
SavedView.DocumentDisplayFields.TITLE,
|
||||
SavedView.DocumentDisplayFields.CREATED,
|
||||
],
|
||||
)
|
||||
|
||||
@@ -1699,9 +1699,9 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
f"/api/saved_views/{v1.id}/",
|
||||
{
|
||||
"document_display_fields": [
|
||||
SavedView.DashboardViewTableColumns.TAGS,
|
||||
SavedView.DashboardViewTableColumns.TITLE,
|
||||
SavedView.DashboardViewTableColumns.CREATED,
|
||||
SavedView.DocumentDisplayFields.TAGS,
|
||||
SavedView.DocumentDisplayFields.TITLE,
|
||||
SavedView.DocumentDisplayFields.CREATED,
|
||||
],
|
||||
},
|
||||
format="json",
|
||||
@@ -1712,9 +1712,9 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
self.assertEqual(
|
||||
v1.document_display_fields,
|
||||
[
|
||||
SavedView.DashboardViewTableColumns.TAGS,
|
||||
SavedView.DashboardViewTableColumns.TITLE,
|
||||
SavedView.DashboardViewTableColumns.CREATED,
|
||||
SavedView.DocumentDisplayFields.TAGS,
|
||||
SavedView.DocumentDisplayFields.TITLE,
|
||||
SavedView.DocumentDisplayFields.CREATED,
|
||||
],
|
||||
)
|
||||
|
||||
@@ -1725,11 +1725,11 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
"show_in_sidebar": True,
|
||||
"sort_field": "created2",
|
||||
"filter_rules": [{"rule_type": 4, "value": "test"}],
|
||||
"dashboard_view_limit": 20,
|
||||
"dashboard_view_mode": SavedView.DashboardViewDisplayMode.SMALL_CARDS,
|
||||
"page_size": 20,
|
||||
"display_mode": SavedView.ViewDisplayMode.SMALL_CARDS,
|
||||
"document_display_fields": [
|
||||
SavedView.DashboardViewTableColumns.TITLE,
|
||||
SavedView.DashboardViewTableColumns.CREATED,
|
||||
SavedView.DocumentDisplayFields.TITLE,
|
||||
SavedView.DocumentDisplayFields.CREATED,
|
||||
],
|
||||
}
|
||||
|
||||
@@ -1747,9 +1747,9 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
f"/api/saved_views/{v1.id}/",
|
||||
{
|
||||
"document_display_fields": [
|
||||
SavedView.DashboardViewTableColumns.TITLE,
|
||||
SavedView.DashboardViewTableColumns.CREATED,
|
||||
SavedView.DashboardViewDynamicTableColumns.CUSTOM_FIELD[0]
|
||||
SavedView.DocumentDisplayFields.TITLE,
|
||||
SavedView.DocumentDisplayFields.CREATED,
|
||||
SavedView.DynamicDocumentDisplayFields.CUSTOM_FIELD[0]
|
||||
% custom_field.id,
|
||||
],
|
||||
},
|
||||
@@ -1761,9 +1761,9 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
self.assertEqual(
|
||||
v1.document_display_fields,
|
||||
[
|
||||
str(SavedView.DashboardViewTableColumns.TITLE),
|
||||
str(SavedView.DashboardViewTableColumns.CREATED),
|
||||
SavedView.DashboardViewDynamicTableColumns.CUSTOM_FIELD[0]
|
||||
str(SavedView.DocumentDisplayFields.TITLE),
|
||||
str(SavedView.DocumentDisplayFields.CREATED),
|
||||
SavedView.DynamicDocumentDisplayFields.CUSTOM_FIELD[0]
|
||||
% custom_field.id,
|
||||
],
|
||||
)
|
||||
@@ -1773,9 +1773,9 @@ class TestDocumentApi(DirectoriesMixin, DocumentConsumeDelayMixin, APITestCase):
|
||||
f"/api/saved_views/{v1.id}/",
|
||||
{
|
||||
"document_display_fields": [
|
||||
SavedView.DashboardViewTableColumns.TITLE,
|
||||
SavedView.DashboardViewTableColumns.CREATED,
|
||||
SavedView.DashboardViewDynamicTableColumns.CUSTOM_FIELD[0] % 99,
|
||||
SavedView.DocumentDisplayFields.TITLE,
|
||||
SavedView.DocumentDisplayFields.CREATED,
|
||||
SavedView.DynamicDocumentDisplayFields.CUSTOM_FIELD[0] % 99,
|
||||
],
|
||||
},
|
||||
format="json",
|
||||
|
||||
Reference in New Issue
Block a user