Admin pages for custom fields & instances, make not editable in admin

This commit is contained in:
shamoon 2023-11-01 09:30:13 -07:00
parent 6a0e56662c
commit 079df6aeb0
4 changed files with 33 additions and 0 deletions

View File

@ -3,6 +3,8 @@ from django.contrib import admin
from guardian.admin import GuardedModelAdmin
from documents.models import Correspondent
from documents.models import CustomField
from documents.models import CustomFieldInstance
from documents.models import Document
from documents.models import DocumentType
from documents.models import Note
@ -144,6 +146,20 @@ class ShareLinksAdmin(GuardedModelAdmin):
list_display_links = ("created",)
class CustomFieldsAdmin(GuardedModelAdmin):
fields = ("name", "created", "data_type")
readonly_fields = ("created", "data_type")
list_display = ("name", "created", "data_type")
list_filter = ("created", "data_type")
class CustomFieldInstancesAdmin(GuardedModelAdmin):
fields = ("field", "document", "created", "value")
readonly_fields = ("field", "document", "created", "value")
list_display = ("field", "document", "value", "created")
list_filter = ("document", "created")
admin.site.register(Correspondent, CorrespondentAdmin)
admin.site.register(Tag, TagAdmin)
admin.site.register(DocumentType, DocumentTypeAdmin)
@ -153,6 +169,8 @@ admin.site.register(StoragePath, StoragePathAdmin)
admin.site.register(PaperlessTask, TaskAdmin)
admin.site.register(Note, NotesAdmin)
admin.site.register(ShareLink, ShareLinksAdmin)
admin.site.register(CustomField, CustomFieldsAdmin)
admin.site.register(CustomFieldInstance, CustomFieldInstancesAdmin)
if settings.AUDIT_LOG_ENABLED:

View File

@ -32,6 +32,7 @@ class Migration(migrations.Migration):
db_index=True,
default=django.utils.timezone.now,
verbose_name="created",
editable=False,
),
),
("name", models.CharField(max_length=128)),
@ -47,6 +48,7 @@ class Migration(migrations.Migration):
],
max_length=50,
verbose_name="data type",
editable=False,
),
),
],
@ -71,6 +73,7 @@ class Migration(migrations.Migration):
(
"created",
models.DateTimeField(
editable=False,
db_index=True,
default=django.utils.timezone.now,
verbose_name="created",
@ -79,6 +82,7 @@ class Migration(migrations.Migration):
(
"document",
models.ForeignKey(
editable=False,
on_delete=django.db.models.deletion.CASCADE,
related_name="custom_fields",
to="documents.document",
@ -87,6 +91,7 @@ class Migration(migrations.Migration):
(
"field",
models.ForeignKey(
editable=False,
on_delete=django.db.models.deletion.CASCADE,
related_name="fields",
to="documents.customfield",

View File

@ -902,6 +902,7 @@ class CustomField(models.Model):
_("created"),
default=timezone.now,
db_index=True,
editable=False,
)
name = models.CharField(max_length=128)
@ -910,6 +911,7 @@ class CustomField(models.Model):
_("data type"),
max_length=50,
choices=FieldDataType.choices,
editable=False,
)
class Meta:
@ -937,6 +939,7 @@ class CustomFieldInstance(models.Model):
_("created"),
default=timezone.now,
db_index=True,
editable=False,
)
document = models.ForeignKey(
@ -945,6 +948,7 @@ class CustomFieldInstance(models.Model):
null=False,
on_delete=models.CASCADE,
related_name="custom_fields",
editable=False,
)
field = models.ForeignKey(
@ -953,6 +957,7 @@ class CustomFieldInstance(models.Model):
null=False,
on_delete=models.CASCADE,
related_name="fields",
editable=False,
)
class Meta:

View File

@ -398,6 +398,11 @@ class StoragePathField(serializers.PrimaryKeyRelatedField):
class CustomFieldSerializer(serializers.ModelSerializer):
data_type = serializers.ChoiceField(
choices=CustomField.FieldDataType,
read_only=False,
)
class Meta:
model = CustomField
fields = [