]> git.ipfire.org Git - pbs.git/commitdiff
events: Don't link to deleted items
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 21 Jan 2025 17:10:11 +0000 (17:10 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 21 Jan 2025 17:10:11 +0000 (17:10 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/database.py
src/templates/events/macros.html

index e19a5fa260b2cbdb589ced55a97fba04dfdcd9ff..4f5ff7c8bacf9c67d78f4f43cf65d71af12e3cb8 100644 (file)
@@ -429,8 +429,21 @@ class SoftDeleteMixin:
                A mixin that will automatically add a deleted_at column with a timestamp
                of when an object has been deleted.
        """
+
+       # Deleted At
+
        deleted_at = Column(DateTime(timezone=False), nullable=True)
 
+       # Deleted?
+
+       def is_deleted(self):
+               if self.deleted_at:
+                       return True
+
+               return False
+
+       # Delete!
+
        async def delete(self, deleted_by=None):
                """
                        Called to delete this object
index b52896d8ab259fd2e76d726a48fced16dd287481..38b24a17a6fbbdedf28df1432f88fd0e5542b3f2 100644 (file)
                                <div class="level-left">
                                        {# Build #}
                                        {% if show_build and event.build and not event.job %}
-                                               <a class="level-item" href="/builds/{{ event.build.uuid }}">
-                                                       {{ event.build }}
-                                               </a>
+                                               {% if event.build.is_deleted() %}
+                                                       <span class="level-item">
+                                                               {{ event.build }}
+                                                       </span>
+                                               {% else %}
+                                                       <a class="level-item" href="/builds/{{ event.build.uuid }}">
+                                                               {{ event.build }}
+                                                       </a>
+                                               {% endif %}
                                        {% endif %}
 
                                        {# By Build #}
                                        {% if event.by_build %}
-                                               <a class="level-item" href="/builds/{{ event.by_build.uuid }}">
-                                                       {{ _("by %s") % event.by_build }}
-                                               </a>
+                                               {% if event.by_build.is_deleted() %}
+                                                       <span class="level-item">
+                                                               {{ _("by %s") % event.by_build }}
+                                                       </span>
+                                               {% else %}
+                                                       <a class="level-item" href="/builds/{{ event.by_build.uuid }}">
+                                                               {{ _("by %s") % event.by_build }}
+                                                       </a>
+                                               {% endif %}
                                        {% endif %}
 
                                        {# Build Group #}
 
                                        {# Job #}
                                        {% if event.job %}
-                                               <a class="level-item" href="/builds/{{ event.job.build.uuid }}#{{ event.job.arch }}">
-                                                       {{ event.job }}
-                                               </a>
+                                               {% if event.job.is_deleted() %}
+                                                       <span class="level-item">
+                                                               {{ event.job }}
+                                                       </span>
+                                               {% else %}
+                                                       <a class="level-item" href="/builds/{{ event.job.build.uuid }}#{{ event.job.arch }}">
+                                                               {{ event.job }}
+                                                       </a>
+                                               {% endif %}
                                        {% endif %}
 
                                        {# Package Name #}
 
                                        {# Mirror #}
                                        {% if event.mirror %}
-                                               <a class="level-item" href="/mirrors/{{ event.mirror.hostname }}">
-                                                       {{ event.mirror }}
-                                               </a>
+                                               {% if event.mirror.is_deleted() %}
+                                                       <span class="level-item">
+                                                               {{ event.mirror }}
+                                                       </span>
+                                               {% else %}
+                                                       <a class="level-item" href="/mirrors/{{ event.mirror.hostname }}">
+                                                               {{ event.mirror }}
+                                                       </a>
+                                               {% endif %}
                                        {% endif %}
 
                                        {# Repository #}
                                        {% if event.repo %}
-                                               <a class="level-item" href="{{ event.repo.url }}">
-                                                       {{ event.repo }}
-                                               </a>
+                                               {% if event.repo.is_deleted() %}
+                                                       <span class="level-item">
+                                                               {{ event.repo }}
+                                                       </span>
+                                               {% else %}
+                                                       <a class="level-item" href="{{ event.repo.url }}">
+                                                               {{ event.repo }}
+                                                       </a>
+                                               {% endif %}
                                        {% endif %}
 
                                        {# Release #}
                                        {% if event.release %}
-                                               <a class="level-item" href="{{ event.release.url }}">
-                                                       {{ event.release }}
-                                               </a>
+                                               {% if event.release.is_deleted() %}
+                                                       <span class="level-item">
+                                                               {{ event.release }}
+                                                       </span>
+                                               {% else %}
+                                                       <a class="level-item" href="{{ event.release.url }}">
+                                                               {{ event.release }}
+                                                       </a>
+                                               {% endif %}
                                        {% endif %}
 
                                        {# By User #}
                                        {% if not event.type == "build-comment" and event.by_user %}
-                                               <a class="level-item" href="/users/{{ event.by_user.name }}">
-                                                       {{ _("by %s") % event.by_user }}
-                                               </a>
+                                               {% if event.by_user.is_deleted() %}
+                                                       <span class="level-item">
+                                                               {{ _("by %s") % event.by_user }}
+                                                       </span>
+                                               {% else %}
+                                                       <a class="level-item" href="/users/{{ event.by_user.name }}">
+                                                               {{ _("by %s") % event.by_user }}
+                                                       </a>
+                                               {% endif %}
                                        {% endif %}
 
                                        {# Builder #}
                                        {% if show_builder and event.builder %}
-                                               <a class="level-item" href="/builders/{{ event.builder.name }}">
-                                                       {{ event.builder }}
-                                               </a>
+                                               {% if event.builder.is_deleted() %}
+                                                       <span class="level-item">
+                                                               {{ event.builder }}
+                                                       </span>
+                                               {% else %}
+                                                       <a class="level-item" href="/builders/{{ event.builder.name }}">
+                                                               {{ event.builder }}
+                                                       </a>
+                                               {% endif %}
                                        {% endif %}
                                </div>
                        </nav>