From 7547f45a864c8f35f807a7901e57c77fe7626c64 Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Thu, 25 Apr 2019 12:04:29 +0200
Subject: [PATCH] Add PublicationProxyMetadata model, to ease Publication admin

This was motivated by having to solve the screwup with BiBTeX entries between
commits c1be30395e1b4d127cefd6e5e9790166198883c0 (2018-03-05)
up to 2ad415ce10e914fd4e10fe0bfdb2edf02c331483 (2018-09-26)
which caused all BiBTeX entries to miss a closing bracket in the title.
---
 journals/admin.py                             | 20 +++++++++++++-
 .../0062_publicationproxymetadata.py          | 27 +++++++++++++++++++
 2 files changed, 46 insertions(+), 1 deletion(-)
 create mode 100644 journals/migrations/0062_publicationproxymetadata.py

diff --git a/journals/admin.py b/journals/admin.py
index 707605c5b..0c640c05c 100644
--- a/journals/admin.py
+++ b/journals/admin.py
@@ -66,7 +66,7 @@ class OrgPubFractionInline(admin.TabularInline):
 
 
 class PublicationAdmin(admin.ModelAdmin):
-    search_fields = ['title', 'author_list']
+    search_fields = ['title', 'author_list', 'doi_label']
     list_display = ['title', 'author_list', 'in_issue', 'doi_string', 'publication_date', 'status']
     date_hierarchy = 'publication_date'
     list_filter = ['in_issue']
@@ -77,6 +77,24 @@ class PublicationAdmin(admin.ModelAdmin):
 admin.site.register(Publication, PublicationAdmin)
 
 
+class PublicationProxyMetadata(Publication):
+    search_fields = ['title', 'author_list', 'doi_label']
+    list_display = ['title', 'author_list', 'in_issue', 'doi_string', 'publication_date', 'status']
+
+    class Meta:
+        proxy = True
+        verbose_name = 'Publication metadata'
+        verbose_name_plural = 'Publication metadata'
+
+class PublicationProxyMetadataAdmin(admin.ModelAdmin):
+    fields = ['metadata', 'metadata_xml', 'metadata_DOAJ', 'BiBTeX_entry']
+    search_fields = ['title', 'author_list', 'doi_label']
+    list_display = ['title', 'author_list', 'in_issue', 'doi_string', 'publication_date', 'status']
+
+
+admin.site.register(PublicationProxyMetadata, PublicationProxyMetadataAdmin)
+
+
 class DepositAdmin(admin.ModelAdmin):
     list_display = ('publication', 'timestamp', 'doi_batch_id', 'deposition_date',)
     readonly_fields = ('publication', 'doi_batch_id', 'metadata_xml', 'deposition_date',)
diff --git a/journals/migrations/0062_publicationproxymetadata.py b/journals/migrations/0062_publicationproxymetadata.py
new file mode 100644
index 000000000..256dbb1ba
--- /dev/null
+++ b/journals/migrations/0062_publicationproxymetadata.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.4 on 2019-04-25 10:03
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('journals', '0061_remove_publicationauthorstable_contributor'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='PublicationProxyMetadata',
+            fields=[
+            ],
+            options={
+                'indexes': [],
+                'proxy': True,
+                'verbose_name_plural': 'Publication metadata',
+                'verbose_name': 'Publication metadata',
+            },
+            bases=('journals.publication',),
+        ),
+    ]
-- 
GitLab