feat: add cover for images and adoption process if inactive
This commit is contained in:
@@ -541,6 +541,13 @@ class AdoptionNotice(models.Model):
|
|||||||
def _values_of(list_of_enums):
|
def _values_of(list_of_enums):
|
||||||
return list(map(lambda x: x[0], list_of_enums))
|
return list(map(lambda x: x[0], list_of_enums))
|
||||||
|
|
||||||
|
@property
|
||||||
|
def status_category(self):
|
||||||
|
ansc = AdoptionNoticeStatusChoices
|
||||||
|
for status_category in [ansc.Active, ansc.Disabled, ansc.Closed, ansc.AwaitingAction]:
|
||||||
|
if self.adoption_notice_status in self._values_of(status_category.choices):
|
||||||
|
return status_category.__name__.lower()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_active(self):
|
def is_active(self):
|
||||||
return self.adoption_notice_status in self._values_of(AdoptionNoticeStatusChoices.Active.choices)
|
return self.adoption_notice_status in self._values_of(AdoptionNoticeStatusChoices.Active.choices)
|
||||||
@@ -557,6 +564,19 @@ class AdoptionNotice(models.Model):
|
|||||||
def is_awaiting_action(self):
|
def is_awaiting_action(self):
|
||||||
return self.adoption_notice_status in self._values_of(AdoptionNoticeStatusChoices.AwaitingAction.choices)
|
return self.adoption_notice_status in self._values_of(AdoptionNoticeStatusChoices.AwaitingAction.choices)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def status_description_short(self):
|
||||||
|
if self.is_active:
|
||||||
|
return _("Vermittlung aktiv")
|
||||||
|
elif self.is_disabled:
|
||||||
|
return _("Vermittlung gesperrt")
|
||||||
|
elif self.is_closed:
|
||||||
|
return _("Vermittlung geschlossen")
|
||||||
|
elif self.is_awaiting_action:
|
||||||
|
return _("Wartet auf Freigabe von Moderator*innen")
|
||||||
|
else:
|
||||||
|
raise NotImplementedError()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def status_description(self):
|
def status_description(self):
|
||||||
return AdoptionNoticeStatusChoicesDescriptions.mapping[self.adoption_notice_status]
|
return AdoptionNoticeStatusChoicesDescriptions.mapping[self.adoption_notice_status]
|
||||||
|
|||||||
@@ -245,6 +245,34 @@ IMAGES
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.cover {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: rgba(192, 192, 192, 0.75);
|
||||||
|
z-index: 99;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
opacity: 1;
|
||||||
|
transition: opacity 500ms;
|
||||||
|
border-radius: inherit; // ensure border radius of cards is followed, see https://css-tricks.com/preventing-child-background-overflow-with-inherited-border-radii/
|
||||||
|
}
|
||||||
|
|
||||||
|
.cover:hover {
|
||||||
|
transition: opacity 500ms;
|
||||||
|
opacity: 0;
|
||||||
|
|
||||||
|
// For being able to click the image and for accessibility the cover should have display: none;
|
||||||
|
// This is accepted by W3C: https://front-end.social/@mia/109433817951030826
|
||||||
|
// However this does not yet seem to be supported to be animated by browsers.
|
||||||
|
// Chrome claims to have shipped it: https://chromestatus.com/feature/5154958272364544
|
||||||
|
// However I couldn't get it to work there too.
|
||||||
|
// display: none;
|
||||||
|
// transition: opacity 1000ms, display 100ms;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
AN Cards
|
AN Cards
|
||||||
@@ -322,7 +350,6 @@ AN Cards
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.notification-container {
|
.notification-container {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|||||||
@@ -164,6 +164,9 @@
|
|||||||
{% if adoption_notice.get_photos %}
|
{% if adoption_notice.get_photos %}
|
||||||
<div class="column block">
|
<div class="column block">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
|
{% if not adoption_notice.is_active %}
|
||||||
|
<div class="cover">{{ adoption_notice.status_description_short }}</div>
|
||||||
|
{% endif %}
|
||||||
<div class="grid card-content">
|
<div class="grid card-content">
|
||||||
<div class="gallery">
|
<div class="gallery">
|
||||||
{% with photo=adoption_notice.get_photos.0 %}
|
{% with photo=adoption_notice.get_photos.0 %}
|
||||||
|
|||||||
@@ -7,6 +7,9 @@
|
|||||||
{% translate 'Adoptionsprozess' %}
|
{% translate 'Adoptionsprozess' %}
|
||||||
</h2>
|
</h2>
|
||||||
</div>
|
</div>
|
||||||
|
{% if not adoption_notice.is_active %}
|
||||||
|
<div class="cover">{{ adoption_notice.status_description_short }}</div>
|
||||||
|
{% endif %}
|
||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
{% include adoption_process_template %}
|
{% include adoption_process_template %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user