Loading scipost_django/journals/migrations/0142_alter_publicationresource_options.py 0 → 100644 +17 −0 Original line number Diff line number Diff line # Generated by Django 5.2.5 on 2026-03-31 12:48 from django.db import migrations class Migration(migrations.Migration): dependencies = [ ("journals", "0141_alter_issue_doi_label_alter_journal_doi_label_and_more"), ] operations = [ migrations.AlterModelOptions( name="publicationresource", options={"ordering": ["-publication", "_type"]}, ), ] scipost_django/journals/models/publication.py +2 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ if TYPE_CHECKING: from production.models import ProofsRepository from profiles.models import Profile from ethics.models import GenAIDisclosure from ..models import PublicationResource class PublicationAuthorsTable(models.Model): Loading Loading @@ -222,6 +223,7 @@ class Publication(models.Model): if TYPE_CHECKING: authors = RelatedManager[PublicationAuthorsTable] gen_ai_disclosures = "Manager[GenAIDisclosure]" resources = RelatedManager[PublicationResource] class Meta: default_related_name = "publications" Loading scipost_django/journals/models/resource.py +21 −0 Original line number Diff line number Diff line Loading @@ -30,8 +30,29 @@ class PublicationResource(models.Model): objects = PublicationResourceQuerySet.as_manager() class Meta: ordering = ["-publication", "_type"] def __str__(self): return ( f"Resource for {self.publication.doi_label}: " f"{self.get__type_display()} at {self.url}" ) def short_str(self): match self._type: case self.TYPE_SOURCE_REPO: short_str = "src" case self.TYPE_RELEASE_ARCHIVE_REPO: short_str = "publication repo" case self.TYPE_LIVE_REPO: short_str = "live repo (external)" case self.TYPE_SUP_INFO: short_str = "supplemental info" case _: short_str = "unknown resource type" if self.comments: short_str += f" - {self.comments}" return short_str No newline at end of file scipost_django/journals/templates/journals/_publication_summary.html +12 −12 Original line number Diff line number Diff line Loading @@ -28,22 +28,22 @@ {% endif %} </p> <ul class="publicationClickables mt-3"> <ul class="publicationClickables mt-3 d-flex flex-row align-items-center"> <li>doi: {{ publication.doi_string }}</li> {% if publication.pdf_file %} <li class="publicationPDF"> <a href="{{ publication.get_absolute_url }}/pdf" target="_blank">pdf</a> </li> {% endif %} {% if publication.resources.source.first %} <li><a href="{{ publication.resources.source.first.url }}"><strong>src</strong></a></li> {% endif %} {% if publication.resources.release.first %} <li><a href="{{ publication.resources.release.first.url }}"><strong>publication repo</strong></a></li> {% endif %} {% if publication.resources.live.first %} <li><a href="{{ publication.resources.live.first.url }}">live repo (external)</a></li> {% endif %} {% for source in publication.resources.source %} <li><a class="fw-bold" href="{{ source.url }}">{{ source.short_str }}</a></li> {% endfor %} {% for release in publication.resources.release %} <li><a class="fw-bold" href="{{ release.url }}">{{ release.short_str }}</a></li> {% endfor %} {% for live in publication.resources.live %} <li><a href="{{ live.url }}">{{ live.short_str }}</a></li> {% endfor %} <li><button type="button" class="btn btn-link p-0" data-bs-toggle="modal" data-bs-target="#bibtextmodal">BiBTeX</button></li> <li><button type="button" class="btn btn-link p-0" data-bs-toggle="modal" data-bs-target="#rismodal">RIS</button></li> <li><a href="{% url 'submissions:submission' publication.accepted_submission.preprint.identifier_w_vn_nr %}">Submissions/Reports</a></li> Loading Loading
scipost_django/journals/migrations/0142_alter_publicationresource_options.py 0 → 100644 +17 −0 Original line number Diff line number Diff line # Generated by Django 5.2.5 on 2026-03-31 12:48 from django.db import migrations class Migration(migrations.Migration): dependencies = [ ("journals", "0141_alter_issue_doi_label_alter_journal_doi_label_and_more"), ] operations = [ migrations.AlterModelOptions( name="publicationresource", options={"ordering": ["-publication", "_type"]}, ), ]
scipost_django/journals/models/publication.py +2 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ if TYPE_CHECKING: from production.models import ProofsRepository from profiles.models import Profile from ethics.models import GenAIDisclosure from ..models import PublicationResource class PublicationAuthorsTable(models.Model): Loading Loading @@ -222,6 +223,7 @@ class Publication(models.Model): if TYPE_CHECKING: authors = RelatedManager[PublicationAuthorsTable] gen_ai_disclosures = "Manager[GenAIDisclosure]" resources = RelatedManager[PublicationResource] class Meta: default_related_name = "publications" Loading
scipost_django/journals/models/resource.py +21 −0 Original line number Diff line number Diff line Loading @@ -30,8 +30,29 @@ class PublicationResource(models.Model): objects = PublicationResourceQuerySet.as_manager() class Meta: ordering = ["-publication", "_type"] def __str__(self): return ( f"Resource for {self.publication.doi_label}: " f"{self.get__type_display()} at {self.url}" ) def short_str(self): match self._type: case self.TYPE_SOURCE_REPO: short_str = "src" case self.TYPE_RELEASE_ARCHIVE_REPO: short_str = "publication repo" case self.TYPE_LIVE_REPO: short_str = "live repo (external)" case self.TYPE_SUP_INFO: short_str = "supplemental info" case _: short_str = "unknown resource type" if self.comments: short_str += f" - {self.comments}" return short_str No newline at end of file
scipost_django/journals/templates/journals/_publication_summary.html +12 −12 Original line number Diff line number Diff line Loading @@ -28,22 +28,22 @@ {% endif %} </p> <ul class="publicationClickables mt-3"> <ul class="publicationClickables mt-3 d-flex flex-row align-items-center"> <li>doi: {{ publication.doi_string }}</li> {% if publication.pdf_file %} <li class="publicationPDF"> <a href="{{ publication.get_absolute_url }}/pdf" target="_blank">pdf</a> </li> {% endif %} {% if publication.resources.source.first %} <li><a href="{{ publication.resources.source.first.url }}"><strong>src</strong></a></li> {% endif %} {% if publication.resources.release.first %} <li><a href="{{ publication.resources.release.first.url }}"><strong>publication repo</strong></a></li> {% endif %} {% if publication.resources.live.first %} <li><a href="{{ publication.resources.live.first.url }}">live repo (external)</a></li> {% endif %} {% for source in publication.resources.source %} <li><a class="fw-bold" href="{{ source.url }}">{{ source.short_str }}</a></li> {% endfor %} {% for release in publication.resources.release %} <li><a class="fw-bold" href="{{ release.url }}">{{ release.short_str }}</a></li> {% endfor %} {% for live in publication.resources.live %} <li><a href="{{ live.url }}">{{ live.short_str }}</a></li> {% endfor %} <li><button type="button" class="btn btn-link p-0" data-bs-toggle="modal" data-bs-target="#bibtextmodal">BiBTeX</button></li> <li><button type="button" class="btn btn-link p-0" data-bs-toggle="modal" data-bs-target="#rismodal">RIS</button></li> <li><a href="{% url 'submissions:submission' publication.accepted_submission.preprint.identifier_w_vn_nr %}">Submissions/Reports</a></li> Loading