SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 42adff0b authored by George Katsikas's avatar George Katsikas :goat:
Browse files

add alternative journals field for allowable paths

parent bac5decc
No related branches found
No related tags found
No related merge requests found
...@@ -45,7 +45,17 @@ class JournalAdmin(admin.ModelAdmin): ...@@ -45,7 +45,17 @@ class JournalAdmin(admin.ModelAdmin):
AutogeneratedFileContentTemplateInline, AutogeneratedFileContentTemplateInline,
] ]
# Filter `alternative_journals` to include only ones:
# - in the same academic field as the current journal
# - that are active
def formfield_for_manytomany(self, db_field, request, **kwargs):
if db_field.name == "alternative_journals":
journal_id = request.resolver_match.kwargs["object_id"]
journal = Journal.objects.get(pk=journal_id)
kwargs["queryset"] = Journal.objects.filter(
active=True, college__acad_field=journal.college.acad_field
).exclude(pk=journal_id)
return super().formfield_for_manytomany(db_field, request, **kwargs)
@admin.register(Volume) @admin.register(Volume)
...@@ -53,8 +63,6 @@ class VolumeAdmin(admin.ModelAdmin): ...@@ -53,8 +63,6 @@ class VolumeAdmin(admin.ModelAdmin):
list_display = ["__str__", "doi_string"] list_display = ["__str__", "doi_string"]
@admin.register(Issue) @admin.register(Issue)
class IssueAdmin(admin.ModelAdmin): class IssueAdmin(admin.ModelAdmin):
list_display = ["__str__", "doi_string"] list_display = ["__str__", "doi_string"]
...@@ -65,8 +73,6 @@ class IssueAdmin(admin.ModelAdmin): ...@@ -65,8 +73,6 @@ class IssueAdmin(admin.ModelAdmin):
] ]
class ReferenceInline(admin.TabularInline): class ReferenceInline(admin.TabularInline):
model = Reference model = Reference
extra = 0 extra = 0
...@@ -122,8 +128,6 @@ class PublicationAdmin(admin.ModelAdmin): ...@@ -122,8 +128,6 @@ class PublicationAdmin(admin.ModelAdmin):
] ]
class PublicationProxyMetadata(Publication): class PublicationProxyMetadata(Publication):
search_fields = ["title", "author_list", "doi_label"] search_fields = ["title", "author_list", "doi_label"]
list_display = [ list_display = [
...@@ -155,8 +159,6 @@ class PublicationProxyMetadataAdmin(admin.ModelAdmin): ...@@ -155,8 +159,6 @@ class PublicationProxyMetadataAdmin(admin.ModelAdmin):
] ]
@admin.register(Deposit) @admin.register(Deposit)
class DepositAdmin(admin.ModelAdmin): class DepositAdmin(admin.ModelAdmin):
list_display = ( list_display = (
...@@ -183,8 +185,6 @@ class DepositAdmin(admin.ModelAdmin): ...@@ -183,8 +185,6 @@ class DepositAdmin(admin.ModelAdmin):
return False return False
@admin.register(DOAJDeposit) @admin.register(DOAJDeposit)
class DOAJDepositAdmin(admin.ModelAdmin): class DOAJDepositAdmin(admin.ModelAdmin):
autocomplete_fields = [ autocomplete_fields = [
...@@ -192,8 +192,6 @@ class DOAJDepositAdmin(admin.ModelAdmin): ...@@ -192,8 +192,6 @@ class DOAJDepositAdmin(admin.ModelAdmin):
] ]
admin.site.register(GenericDOIDeposit) admin.site.register(GenericDOIDeposit)
......
# Generated by Django 4.2.10 on 2024-08-05 12:37
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("journals", "0133_alter_volume_doi_label"),
]
operations = [
migrations.AddField(
model_name="journal",
name="alternative_journals",
field=models.ManyToManyField(to="journals.journal"),
),
]
...@@ -145,6 +145,8 @@ class Journal(models.Model): ...@@ -145,6 +145,8 @@ class Journal(models.Model):
blank=True, blank=True,
) )
alternative_journals = models.ManyToManyField("self")
# Cost per publication information # Cost per publication information
cost_info = models.JSONField(default=cost_default_value) cost_info = models.JSONField(default=cost_default_value)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment