Fix problème de cache dans le SAS & améliore le CSS du SAS

Co-authored-by: Bartuccio Antoine <klmp200@users.noreply.github.com>
This commit is contained in:
Julien Constant 2023-04-05 14:32:32 +02:00 committed by GitHub
parent f605f7dcc6
commit d83842af27
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 21 additions and 16 deletions

View File

@ -160,6 +160,7 @@ main {
> .photo,
> .album {
box-sizing: border-box;
background-color: #333333;
background-size: cover;
background-repeat: no-repeat;
background-position: center center;
@ -167,6 +168,10 @@ main {
width: calc(16 / 9 * 128px);
height: 128px;
&.vertical {
background-size: contain;
}
margin: 0;
padding: 0;
box-shadow: none;

View File

@ -70,7 +70,7 @@
> #next {
width: calc(50% - 5px);
aspect-ratio: 16/9;
background: #aaa;
background: #333333;
> a {
display: flex;
@ -241,6 +241,7 @@
> .infos {
display: flex;
flex-direction: column;
width: 50%;
> div > div {
display: flex;
@ -260,7 +261,7 @@
> .tools {
display: flex;
flex-direction: column;
width: 100%;
width: 50%;
> div {
display: flex;

View File

@ -63,7 +63,12 @@ class Picture(SithFile):
return (w / h) < 1
def can_be_edited_by(self, user):
return user.is_in_group(settings.SITH_GROUP_SAS_ADMIN_ID)
perm = cache.get("%d_can_edit_pictures" % (user.id), None)
if perm is None:
perm = user.is_root or user.is_in_group(settings.SITH_GROUP_SAS_ADMIN_ID)
cache.set("%d_can_edit_pictures" % (user.id), perm, timeout=4)
return perm
def can_be_viewed_by(self, user):
# SAS pictures are visible to old subscribers
@ -72,19 +77,13 @@ class Picture(SithFile):
return False
perm = cache.get("%d_can_view_pictures" % (user.id), False)
if not perm:
perm = user.was_subscribed
# use cache only when user is in SAS Admins or when picture is moderated
if perm and (self.is_moderated or self.can_be_edited_by(user)):
return perm
perm = (
self.is_in_sas
and (self.is_moderated or self.can_be_edited_by(user))
and user.was_subscribed
)
cache.set("%d_can_view_pictures" % (user.id), perm, timeout=4)
return perm
return (perm and self.is_moderated and self.is_in_sas) or self.can_be_edited_by(
user
)
def get_download_url(self):
return reverse("sas:download", kwargs={"picture_id": self.id})

View File

@ -88,7 +88,7 @@
{% if p.can_be_viewed_by(user) %}
<a href="{{ url('sas:picture', picture_id=p.id) }}#pict">
<div
class="photo"
class="photo {% if p.is_vertical %}vertical{% endif %}"
style="background-image: url('{{ p.get_download_thumb_url() }}')"
>
{% if not p.is_moderated %}

View File

@ -38,7 +38,7 @@
<h3>{{ picture.get_display_name() }}</h3>
<h4>{{ picture.parent.children.filter(id__lte=picture.id).count() }} / {{ picture.parent.children.count() }}</h4>
</div>
<br>
{% if not picture.is_moderated %}
{% set next = picture.get_next() %}