Customizable dashboard views
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# Generated by Django 4.2.11 on 2024-04-16 18:35
|
||||
|
||||
import django.core.validators
|
||||
import multiselectfield.db.fields
|
||||
from django.db import migrations
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("documents", "1046_workflowaction_remove_all_correspondents_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="savedview",
|
||||
name="dashboard_view_mode",
|
||||
field=models.CharField(
|
||||
choices=[("table", "Table"), ("small_cards", "Small Cards")],
|
||||
default="table",
|
||||
max_length=128,
|
||||
verbose_name="Dashboard view display mode",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="savedview",
|
||||
name="dashboard_view_limit",
|
||||
field=models.PositiveIntegerField(
|
||||
default=10,
|
||||
validators=[django.core.validators.MinValueValidator(1)],
|
||||
verbose_name="Dashboard view limit",
|
||||
),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="savedview",
|
||||
name="dashboard_view_table_columns",
|
||||
field=multiselectfield.db.fields.MultiSelectField(
|
||||
choices=[
|
||||
("title", "Title"),
|
||||
("created", "Created"),
|
||||
("added", "Added"),
|
||||
("tag", "Tags"),
|
||||
("documenttype", "Document Type"),
|
||||
("correspondent", "Correspondent"),
|
||||
("storagepath", "Storage Path"),
|
||||
],
|
||||
default="created,title,tags,correspondent",
|
||||
max_length=128,
|
||||
),
|
||||
),
|
||||
]
|
||||
@@ -394,6 +394,19 @@ class Log(models.Model):
|
||||
|
||||
|
||||
class SavedView(ModelWithOwner):
|
||||
class DashboardViewDisplayMode(models.TextChoices):
|
||||
TABLE = ("table", _("Table"))
|
||||
SMALL_CARDS = ("small_cards", _("Small Cards"))
|
||||
|
||||
class DashboardViewTableColumns(models.TextChoices):
|
||||
TITLE = ("title", _("Title"))
|
||||
CREATED = ("created", _("Created"))
|
||||
ADDED = ("added", _("Added"))
|
||||
TAGS = ("tag"), _("Tags")
|
||||
DOCUMENT_TYPE = ("documenttype", _("Document Type"))
|
||||
CORRESPONDENT = ("correspondent", _("Correspondent"))
|
||||
STORAGE_PATH = ("storagepath", _("Storage Path"))
|
||||
|
||||
name = models.CharField(_("name"), max_length=128)
|
||||
|
||||
show_on_dashboard = models.BooleanField(
|
||||
@@ -411,6 +424,26 @@ class SavedView(ModelWithOwner):
|
||||
)
|
||||
sort_reverse = models.BooleanField(_("sort reverse"), default=False)
|
||||
|
||||
dashboard_view_limit = models.PositiveIntegerField(
|
||||
_("Dashboard view limit"),
|
||||
default=10,
|
||||
validators=[MinValueValidator(1)],
|
||||
)
|
||||
|
||||
dashboard_view_mode = models.CharField(
|
||||
max_length=128,
|
||||
verbose_name=_("Dashboard view display mode"),
|
||||
choices=DashboardViewDisplayMode.choices,
|
||||
default=DashboardViewDisplayMode.TABLE,
|
||||
)
|
||||
|
||||
dashboard_view_table_columns = MultiSelectField(
|
||||
max_length=128,
|
||||
verbose_name=_("Dashboard view table display columns"),
|
||||
choices=DashboardViewTableColumns.choices,
|
||||
default=f"{DashboardViewTableColumns.CREATED},{DashboardViewTableColumns.TITLE},{DashboardViewTableColumns.TAGS},{DashboardViewTableColumns.CORRESPONDENT}",
|
||||
)
|
||||
|
||||
class Meta:
|
||||
ordering = ("name",)
|
||||
verbose_name = _("saved view")
|
||||
|
||||
@@ -804,6 +804,10 @@ class SavedViewFilterRuleSerializer(serializers.ModelSerializer):
|
||||
|
||||
class SavedViewSerializer(OwnedObjectSerializer):
|
||||
filter_rules = SavedViewFilterRuleSerializer(many=True)
|
||||
dashboard_view_table_columns = fields.MultipleChoiceField(
|
||||
choices=SavedView.DashboardViewTableColumns.choices,
|
||||
required=False,
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = SavedView
|
||||
@@ -815,6 +819,9 @@ class SavedViewSerializer(OwnedObjectSerializer):
|
||||
"sort_field",
|
||||
"sort_reverse",
|
||||
"filter_rules",
|
||||
"dashboard_view_limit",
|
||||
"dashboard_view_mode",
|
||||
"dashboard_view_table_columns",
|
||||
"owner",
|
||||
"permissions",
|
||||
"user_can_change",
|
||||
|
||||
Reference in New Issue
Block a user