Admin pages for custom fields & instances, make not editable in admin
This commit is contained in:
parent
6a0e56662c
commit
079df6aeb0
@ -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:
|
||||
|
||||
|
@ -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",
|
||||
|
@ -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:
|
||||
|
@ -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 = [
|
||||
|
Loading…
x
Reference in New Issue
Block a user