Commit 81916709 authored by George Katsikas's avatar George Katsikas 🐐
Browse files

feat: show multiple resources at pub summary clickables

parent 6d6349ee
Loading
Loading
Loading
Loading
+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"]},
        ),
    ]
+2 −0
Original line number Diff line number Diff line
@@ -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):
@@ -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"
+21 −0
Original line number Diff line number Diff line
@@ -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
+12 −12
Original line number Diff line number Diff line
@@ -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&nbsp;repo</strong></a></li>
      {% endif %}
      {% if publication.resources.live.first %}
	<li><a href="{{ publication.resources.live.first.url }}">live&nbsp;repo&nbsp;(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>