Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
AE UTBM
Sith
Commits
9f35f740
Commit
9f35f740
authored
Dec 18, 2016
by
Skia
🤘
Browse files
Huge performance improvement in SAS, miss the album thumbnail in most cases
parent
4a7df31f
Pipeline
#534
passed with stage
in 2 minutes and 32 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
sas/models.py
View file @
9f35f740
...
...
@@ -24,13 +24,13 @@ class Picture(SithFile):
return
False
def
can_be_edited_by
(
self
,
user
):
file
=
SithFile
.
objects
.
filter
(
id
=
self
.
id
).
first
()
return
user
.
is_in_group
(
settings
.
SITH_GROUP_SAS_ADMIN_ID
)
or
user
.
can_edit
(
file
)
#
file = SithFile.objects.filter(id=self.id).first()
return
user
.
is_in_group
(
settings
.
SITH_GROUP_SAS_ADMIN_ID
)
#
or user.can_edit(file)
def
can_be_viewed_by
(
self
,
user
):
file
=
SithFile
.
objects
.
filter
(
id
=
self
.
id
).
first
()
#
file = SithFile.objects.filter(id=self.id).first()
return
self
.
can_be_edited_by
(
user
)
or
(
self
.
is_in_sas
and
self
.
is_moderated
and
user
.
was_subscribed
())
or
user
.
can_view
(
file
)
user
.
was_subscribed
())
#
or user.can_view(file)
def
get_download_url
(
self
):
return
reverse
(
'sas:download'
,
kwargs
=
{
'picture_id'
:
self
.
id
})
...
...
@@ -88,14 +88,22 @@ class Album(SithFile):
class
Meta
:
proxy
=
True
@
property
def
children_pictures
(
self
):
return
Picture
.
objects
.
filter
(
parent
=
self
,
is_folder
=
False
)
@
property
def
children_albums
(
self
):
return
Album
.
objects
.
filter
(
parent
=
self
,
is_folder
=
True
)
def
can_be_edited_by
(
self
,
user
):
file
=
SithFile
.
objects
.
filter
(
id
=
self
.
id
).
first
()
return
user
.
is_in_group
(
settings
.
SITH_GROUP_SAS_ADMIN_ID
)
or
user
.
can_edit
(
file
)
#
file = SithFile.objects.filter(id=self.id).first()
return
user
.
is_in_group
(
settings
.
SITH_GROUP_SAS_ADMIN_ID
)
#
or user.can_edit(file)
def
can_be_viewed_by
(
self
,
user
):
file
=
SithFile
.
objects
.
filter
(
id
=
self
.
id
).
first
()
#
file = SithFile.objects.filter(id=self.id).first()
return
self
.
can_be_edited_by
(
user
)
or
(
self
.
is_in_sas
and
self
.
is_moderated
and
user
.
was_subscribed
())
or
user
.
can_view
(
file
)
user
.
was_subscribed
())
#
or user.can_view(file)
def
get_absolute_url
(
self
):
return
reverse
(
'sas:album'
,
kwargs
=
{
'album_id'
:
self
.
id
})
...
...
sas/templates/sas/album.jinja
View file @
9f35f740
...
...
@@ -16,6 +16,7 @@
<a
href=
"
{{
url
(
'sas:main'
)
}}
"
>
SAS
</a>
>
{{
print_path
(
album.parent
)
}}
{{
album.get_display_name
()
}}
<h3>
{{
album.get_display_name
()
}}
</h3>
<a
href=
"
{{
url
(
'sas:album_edit'
,
album_id
=
album.id
)
}}
"
>
{%
trans
%}
Edit
{%
endtrans
%}
</a><br>
{{
timezone.now
()
}}
<hr>
{%
set
edit_mode
=
user.can_edit
(
album
)
%}
{%
if
edit_mode
%}
...
...
@@ -38,19 +39,17 @@
{%
endif
%}
{%
endif
%}
<div>
{%
for
a
in
album.children
.
filter
(
is_folder
=
True
)
.
order_by
(
'-id'
)
%}
{%
for
a
in
album.children
_albums
.order_by
(
'-id'
)
%}
<div
style=
"display: inline-block;"
>
{%
if
edit_mode
%}
<input
type=
"checkbox"
name=
"file_list"
value=
"
{{
a.id
}}
"
>
{%
endif
%}
{%
if
user.can_view
(
a
.as_album
)
%}
{%
if
user.can_view
(
a
)
%}
<a
href=
"
{{
url
(
"sas:album"
,
album_id
=
a.id
)
}}
"
style=
"display: inline-block"
>
<div
class=
"album
{%
if
not
a.is_moderated
%}
not_moderated
{%
endif
%}
"
>
<div>
{%
if
a.file
%}
<img
src=
"
{{
a.as_picture.get_download_url
()
}}
"
alt=
"
{%
trans
%}
preview
{%
endtrans
%}
"
>
{%
elif
a.children.
filter
(
is_folder
=
False
,
is_moderated
=
True
)
.
exists
()
%}
<img
src=
"
{{
a.children.filter
(
is_folder
=
False
)
.
first
()
.
as_picture.get_download_thumb_url
()
}}
"
alt=
"
{%
trans
%}
preview
{%
endtrans
%}
"
>
<img
src=
"
{{
a.get_download_url
()
}}
"
alt=
"
{%
trans
%}
preview
{%
endtrans
%}
"
>
{%
else
%}
<img
src=
"
{{
static
(
'core/img/sas.jpg'
)
}}
"
alt=
"
{%
trans
%}
preview
{%
endtrans
%}
"
>
{%
endif
%}
...
...
@@ -63,15 +62,15 @@
{%
endfor
%}
</div>
<div>
{%
for
p
in
album.children
.
filter
(
is_folder
=
False
)
.
order_by
(
'id'
)
%}
{%
for
p
in
album.children
_pictures
.order_by
(
'id'
)
%}
<div
style=
"display: inline-block;"
>
{%
if
edit_mode
%}
<input
type=
"checkbox"
name=
"file_list"
value=
"
{{
p.id
}}
"
>
{%
endif
%}
{%
if
user.can_view
(
p
.as_picture
)
%}
{%
if
user.can_view
(
p
)
%}
<div
class=
"picture
{%
if
not
p.is_moderated
%}
not_moderated
{%
endif
%}
"
>
<a
href=
"
{{
url
(
"sas:picture"
,
picture_id
=
p.id
)
}}
#pict"
>
<img
src=
"
{{
p.
as_picture.
get_download_thumb_url
()
}}
"
alt=
"
{{
p.get_display_name
()
}}
"
/>
<img
src=
"
{{
p.get_download_thumb_url
()
}}
"
alt=
"
{{
p.get_display_name
()
}}
"
/>
</a>
</div>
{%
endif
%}
...
...
@@ -86,6 +85,7 @@
{{
form.as_p
()
}}
<p><input
type=
"submit"
value=
"
{%
trans
%}
Upload
{%
endtrans
%}
"
/></p>
</form>
{{
timezone.now
()
}}
{%
endblock
%}
{%
block
script
%}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment