Refactor activity feed template logic

Yay for removing arbitrary if/else chains!
This commit is contained in:
2020-05-30 14:00:26 +01:00
parent 156e639bac
commit e45324f5b4
5 changed files with 48 additions and 59 deletions

View File

@@ -609,5 +609,9 @@ class RiskAssessment(models.Model):
# Blimey that was a lot of options # Blimey that was a lot of options
@property
def activity_feed_string(self):
return str(self.event)
def __str__(self): def __str__(self):
return "%i: %s" % (self.pk, self.event) return "%i - %s" % (self.pk, self.event)

View File

@@ -176,18 +176,14 @@ class Asset(models.Model, RevisionMixin):
errdict["csa"] = ["The CSA of a cable must be more than 0"] errdict["csa"] = ["The CSA of a cable must be more than 0"]
if not self.cable_type: if not self.cable_type:
errdict["cable_type"] = ["A cable must have a type"] errdict["cable_type"] = ["A cable must have a type"]
# if not self.circuits or self.circuits <= 0:
# errdict["circuits"] = ["There must be at least one circuit in a cable"]
# if not self.cores or self.cores <= 0:
# errdict["cores"] = ["There must be at least one core in a cable"]
# if self.socket is None:
# errdict["socket"] = ["A cable must have a socket"]
# if self.plug is None:
# errdict["plug"] = ["A cable must have a plug"]
if errdict != {}: # If there was an error when validation if errdict != {}: # If there was an error when validation
raise ValidationError(errdict) raise ValidationError(errdict)
@property
def activity_feed_string(self):
return str(self)
@receiver(pre_save, sender=Asset) @receiver(pre_save, sender=Asset)
def pre_save_asset(sender, instance, **kwargs): def pre_save_asset(sender, instance, **kwargs):

View File

@@ -6,48 +6,44 @@
{% load to_class_name from filters %} {% load to_class_name from filters %}
{% block content %} {% block content %}
<div class="list-group-item"> <div class="list-group-item">
<div class="media"> <div class="media">
{% for version in object_list %} {% for version in object_list %}
{% if not version.withPrevious %} {% if not version.withPrevious %}
{% if not forloop.first %} {% if not forloop.first %}
</div> {#/.media-body#} </div> {#/.media-body#}
</div> {#/.media#} </div> {#/.media#}
</div> </div>
<div class="list-group-item"> <div class="list-group-item">
<div class="media"> <div class="media">
{% endif %}
<div class="align-self-start mr-3">
{% if version.revision.user %}
<a href="{% url 'profile_detail' pk=version.revision.user.pk %}" class="modal-href">
<img class="media-object img-rounded" src="{{ version.revision.user.profile_picture}}" />
</a>
{% endif %}
</div>
<div class="media-body">
<h5>
{{ version.revision.user.name }}
<span class="ml-3"><small>{{version.revision.date_created|naturaltime}}</small></span>
</h5>
{% endif %} {% endif %}
<p> <div class="align-self-start mr-3">
<small> {% if version.revision.user %}
{% if version.changes.old == None %} <a href="{% url 'profile_detail' pk=version.revision.user.pk %}" class="modal-href">
Created <img class="media-object img-rounded" src="{{ version.revision.user.profile_picture}}" />
{% else %} </a>
Changed {% include 'version_changes.html' %} in {% endif %}
{% endif %} </div>
<div class="media-body">
<h5>
{{ version.revision.user.name }}
<span class="ml-3"><small>{{version.revision.date_created|naturaltime}}</small></span>
</h5>
{% endif %}
<p>
<small>
{% if version.changes.old == None %}
Created
{% else %}
Changed {% include 'version_changes.html' %} in
{% endif %}
{% include 'object_button.html' with object=version.changes.new %} {% include 'partials/object_button.html' with object=version.changes.new %}
{% if version.revision.comment %} </small>
({{ version.revision.comment }}) </p>
{% endif %}
</small>
</p>
{% endfor %} {% endfor %}
</div>
</div>
</div> </div>
</div>
</div>
{% endblock %} {% endblock %}

View File

@@ -1,10 +0,0 @@
{% load to_class_name from filters %}
{# pass in variable "object" to this template #}
{% if object.name %}
<a title="{% if object.is_rig == False %}Non-rig{% elif object.dry_hire %}Dry Hire{% elif object.is_rig %}Rig{%else%}{{object|to_class_name}}{% endif %} | '{{object.name}}'" href="{{ object.get_absolute_url }}">{% if object.is_rig == False %}Non-rig{% elif object.dry_hire %}Dry Hire{% elif object.is_rig %}Rig{%else%}{{object|to_class_name}}{% endif %} | '{{ object.activity_feed_string|default:object.name }}'</a>
{% elif object.asset_id %}
<a href="{{ object.get_absolute_url }}">Asset | {{object.asset_id }} {{object.description }}</a>
{% elif object.event %}
<a href="{{ object.get_absolute_url }}">{{object|to_class_name}} | {{object.event.name }}</a>
{% endif %}

View File

@@ -0,0 +1,3 @@
{% load to_class_name from filters %}
{# pass in variable "object" to this template #}
<a href="{{ object.get_absolute_url }}">{% if object.is_rig == False %}Non-rig{% elif object.dry_hire %}Dry Hire{% elif object.is_rig %}Rig{%else%}{{object|to_class_name}}{% endif %} | '{% if object.activity_feed_string %}{{object.activity_feed_string}}{% else %}{{object.name}}{%endif%}'</a>