mirror of
https://github.com/ae-utbm/sith.git
synced 2024-11-22 06:03:20 +00:00
Added screen list on poster + Added unmoderated poster artefact + discussions fixes
This commit is contained in:
parent
72d2862e3e
commit
903f07ecbd
@ -623,7 +623,6 @@ class PosterCreateView(PosterCreateBaseView, CanCreateMixin):
|
|||||||
pk_url_kwarg = "club_id"
|
pk_url_kwarg = "club_id"
|
||||||
|
|
||||||
def get_object(self):
|
def get_object(self):
|
||||||
print(self.club)
|
|
||||||
obj = super(PosterCreateView, self).get_object()
|
obj = super(PosterCreateView, self).get_object()
|
||||||
if not obj:
|
if not obj:
|
||||||
return self.club
|
return self.club
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
|
|
||||||
{% for poster in poster_list %}
|
{% for poster in poster_list %}
|
||||||
<div class="poster">
|
<div class="poster{% if not poster.is_moderated %} not_moderated{% endif %}">
|
||||||
<div class="name">{{ poster.name }}</div>
|
<div class="name">{{ poster.name }}</div>
|
||||||
<div class="image"><img src="{{ poster.file.url }}"></img></div>
|
<div class="image"><img src="{{ poster.file.url }}"></img></div>
|
||||||
<div class="dates">
|
<div class="dates">
|
||||||
@ -44,6 +44,13 @@
|
|||||||
{% elif app == "club" %}
|
{% elif app == "club" %}
|
||||||
<a class="edit" href="{{ url(app + ":poster_edit", club.id, poster.id) }}">{% trans %}Edit{% endtrans %}</a>
|
<a class="edit" href="{{ url(app + ":poster_edit", club.id, poster.id) }}">{% trans %}Edit{% endtrans %}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<div class="tooltip">
|
||||||
|
<ul>
|
||||||
|
{% for screen in poster.screens.all() %}
|
||||||
|
<li>{{ screen }}</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
|
|
||||||
{% for poster in object_list %}
|
{% for poster in object_list %}
|
||||||
<div class="poster">
|
<div class="poster{% if not poster.is_moderated %} not_moderated{% endif %}">
|
||||||
<div class="name"> {{ poster.name }} </div>
|
<div class="name"> {{ poster.name }} </div>
|
||||||
<div class="image"> <img src="{{ poster.file.url }}"></img> </div>
|
<div class="image"> <img src="{{ poster.file.url }}"></img> </div>
|
||||||
<a class="moderate" href="{{ url("com:poster_moderate", object_id=poster.id) }}">Moderate</a>
|
<a class="moderate" href="{{ url("com:poster_moderate", object_id=poster.id) }}">Moderate</a>
|
||||||
|
@ -540,7 +540,6 @@ class PosterCreateBaseView(CreateView):
|
|||||||
def dispatch(self, request, *args, **kwargs):
|
def dispatch(self, request, *args, **kwargs):
|
||||||
if 'club_id' in kwargs:
|
if 'club_id' in kwargs:
|
||||||
self.club = get_object_or_404(Club, pk=kwargs['club_id'])
|
self.club = get_object_or_404(Club, pk=kwargs['club_id'])
|
||||||
print(self.club)
|
|
||||||
return super(PosterCreateBaseView, self).dispatch(request, *args, **kwargs)
|
return super(PosterCreateBaseView, self).dispatch(request, *args, **kwargs)
|
||||||
|
|
||||||
def get_form_kwargs(self):
|
def get_form_kwargs(self):
|
||||||
@ -590,7 +589,7 @@ class PosterEditBaseView(UpdateView):
|
|||||||
return kwargs
|
return kwargs
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
if 'club' in self.__dict__ and self.club:
|
if self.request.user.is_com_admin:
|
||||||
form.instance.is_moderated = False
|
form.instance.is_moderated = False
|
||||||
return super(PosterEditBaseView, self).form_valid(form)
|
return super(PosterEditBaseView, self).form_valid(form)
|
||||||
|
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
$(document).ready(function(){
|
|
||||||
|
|
||||||
$("#poster_list #view").click(function(e){
|
|
||||||
$("#view").removeClass("active");
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#poster_list .poster").click(function(e){
|
|
||||||
|
|
||||||
el = $(e.target);
|
|
||||||
$("#poster_list #view #placeholder").html(el);
|
|
||||||
|
|
||||||
$("#view").addClass("active");
|
|
||||||
});
|
|
||||||
|
|
||||||
$(document).keyup(function(e) {
|
|
||||||
if (e.keyCode == 27) { // escape key maps to keycode `27`
|
|
||||||
e.preventDefault();
|
|
||||||
$("#view").removeClass("active");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
@ -645,283 +645,194 @@ header {
|
|||||||
/*---------------------------POSTERS----------------------------*/
|
/*---------------------------POSTERS----------------------------*/
|
||||||
|
|
||||||
#poster_list, #screen_list, #poster_edit, #screen_edit{
|
#poster_list, #screen_list, #poster_edit, #screen_edit{
|
||||||
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
#title{
|
#title{
|
||||||
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
|
|
||||||
border-bottom: 2px solid black;
|
border-bottom: 2px solid black;
|
||||||
|
|
||||||
h3{
|
h3{
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#links{
|
#links{
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
bottom: 5px;
|
bottom: 5px;
|
||||||
|
|
||||||
&.left{
|
&.left{
|
||||||
left: 0;
|
left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.right{
|
&.right{
|
||||||
right: 0;
|
right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.link{
|
.link{
|
||||||
|
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
padding-right: 20px;
|
padding-right: 20px;
|
||||||
|
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
|
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
|
|
||||||
background-color: #ffaa00;
|
background-color: #ffaa00;
|
||||||
|
|
||||||
color: black;
|
color: black;
|
||||||
|
|
||||||
&:hover{
|
&:hover{
|
||||||
|
|
||||||
color: black;
|
color: black;
|
||||||
|
|
||||||
background-color: #c99836;
|
background-color: #c99836;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&.delete{
|
&.delete{
|
||||||
|
|
||||||
background-color: #cb0000;
|
background-color: #cb0000;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#posters, #screens{
|
#posters, #screens{
|
||||||
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|
||||||
#no-posters, #no-screens{
|
#no-posters, #no-screens{
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.poster, .screen{
|
.poster, .screen{
|
||||||
|
|
||||||
min-width: 10%;
|
min-width: 10%;
|
||||||
max-width: 20%;
|
max-width: 20%;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
border: 2px solid darkgrey;
|
border: 2px solid darkgrey;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
|
|
||||||
|
|
||||||
background-color: lightgrey;
|
background-color: lightgrey;
|
||||||
|
|
||||||
*{
|
*{
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.name{
|
.name{
|
||||||
|
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
border-bottom: 1px solid whitesmoke;
|
border-bottom: 1px solid whitesmoke;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.image{
|
.image{
|
||||||
|
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
border-bottom: 1px solid whitesmoke;
|
border-bottom: 1px solid whitesmoke;
|
||||||
|
|
||||||
img{
|
img{
|
||||||
|
|
||||||
max-height: 20vw;
|
max-height: 20vw;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover{
|
&:hover{
|
||||||
|
|
||||||
&::before{
|
&::before{
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
|
|
||||||
content: "Click to expand";
|
content: "Click to expand";
|
||||||
|
|
||||||
color: white;
|
color: white;
|
||||||
background-color: rgba(black, 0.5);
|
background-color: rgba(black, 0.5);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.dates{
|
.dates{
|
||||||
|
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
border-bottom: 1px solid whitesmoke;
|
border-bottom: 1px solid whitesmoke;
|
||||||
|
|
||||||
*{
|
*{
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.begin, .end{
|
.begin, .end{
|
||||||
|
|
||||||
width: 48%;
|
width: 48%;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.begin{
|
.begin{
|
||||||
|
|
||||||
border-right: 1px solid whitesmoke;
|
border-right: 1px solid whitesmoke;
|
||||||
|
|
||||||
padding-right: 2%;
|
padding-right: 2%;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.edit, .moderate, .slideshow{
|
.edit, .moderate, .slideshow{
|
||||||
|
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
|
|
||||||
border-radius: 20px;
|
border-radius: 20px;
|
||||||
|
|
||||||
background-color: #ffaa00;
|
background-color: #ffaa00;
|
||||||
|
|
||||||
color: black;
|
color: black;
|
||||||
|
|
||||||
&:hover{
|
&:hover{
|
||||||
|
|
||||||
color: black;
|
color: black;
|
||||||
|
|
||||||
background-color: #c99836;
|
background-color: #c99836;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(2n){
|
&:nth-child(2n){
|
||||||
|
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
.tooltip{
|
||||||
|
visibility: hidden;
|
||||||
|
width: 120px;
|
||||||
|
background-color: #f9fafb;
|
||||||
|
color: #000;
|
||||||
|
text-align: center;
|
||||||
|
padding: 5px 0;
|
||||||
|
border-radius: 6px;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10;
|
||||||
|
ul{
|
||||||
|
margin-left: 0;
|
||||||
|
display: inline-block;
|
||||||
|
li{
|
||||||
|
display: list-item;
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.not_moderated
|
||||||
|
{
|
||||||
|
border: 1px solid red;
|
||||||
|
}
|
||||||
|
&:hover .tooltip{
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#view{
|
#view{
|
||||||
|
|
||||||
position: fixed;
|
position: fixed;
|
||||||
|
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
|
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
background-color: rgba(10, 10, 10, 0.9);
|
background-color: rgba(10, 10, 10, 0.9);
|
||||||
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
&.active{
|
&.active{
|
||||||
|
|
||||||
visibility: visible;
|
visibility: visible;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#placeholder{
|
#placeholder{
|
||||||
|
|
||||||
width: 80vw;
|
width: 80vw;
|
||||||
height: 80vh;
|
height: 80vh;
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
|
||||||
img{
|
img{
|
||||||
|
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,8 +2,7 @@
|
|||||||
#
|
#
|
||||||
# Copyright 2016,2017
|
# Copyright 2016,2017
|
||||||
# - Skia <skia@libskia.so>
|
# - Skia <skia@libskia.so>
|
||||||
# - Sli <antoine@bartuccio.fr>
|
# - Sli <antoine@bartuccio.fr> #
|
||||||
#
|
|
||||||
# Ce fichier fait partie du site de l'Association des Étudiants de l'UTBM,
|
# Ce fichier fait partie du site de l'Association des Étudiants de l'UTBM,
|
||||||
# http://ae.utbm.fr.
|
# http://ae.utbm.fr.
|
||||||
#
|
#
|
||||||
@ -33,16 +32,17 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
from django.utils.translation import ugettext
|
from django.utils.translation import ugettext
|
||||||
from phonenumber_field.widgets import PhoneNumberInternationalFallbackWidget
|
from phonenumber_field.widgets import PhoneNumberInternationalFallbackWidget
|
||||||
from ajax_select.fields import AutoCompleteSelectField
|
from ajax_select.fields import AutoCompleteSelectField
|
||||||
|
from ajax_select import make_ajax_field
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from core.models import User, Page, SithFile, Gift
|
from core.models import User, Page, SithFile, Gift
|
||||||
from com.models import Poster, Screen
|
|
||||||
|
|
||||||
from core.utils import resize_image
|
from core.utils import resize_image
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
|
|
||||||
# Widgets
|
# Widgets
|
||||||
|
|
||||||
class SelectSingle(Select):
|
class SelectSingle(Select):
|
||||||
@ -261,10 +261,8 @@ class PagePropForm(forms.ModelForm):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Page
|
model = Page
|
||||||
fields = ['parent', 'name', 'owner_group', 'edit_groups', 'view_groups', ]
|
fields = ['parent', 'name', 'owner_group', 'edit_groups', 'view_groups', ]
|
||||||
widgets = {
|
edit_groups = make_ajax_field(Page, 'edit_groups', 'groups', help_text="", label=_("edit groups"))
|
||||||
'edit_groups': CheckboxSelectMultiple,
|
view_groups = make_ajax_field(Page, 'view_groups', 'groups', help_text="", label=_("view groups"))
|
||||||
'view_groups': CheckboxSelectMultiple,
|
|
||||||
}
|
|
||||||
|
|
||||||
def __init__(self, *arg, **kwargs):
|
def __init__(self, *arg, **kwargs):
|
||||||
super(PagePropForm, self).__init__(*arg, **kwargs)
|
super(PagePropForm, self).__init__(*arg, **kwargs)
|
||||||
@ -276,10 +274,8 @@ class PageForm(forms.ModelForm):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Page
|
model = Page
|
||||||
fields = ['parent', 'name', 'owner_group', 'edit_groups', 'view_groups']
|
fields = ['parent', 'name', 'owner_group', 'edit_groups', 'view_groups']
|
||||||
widgets = {
|
edit_groups = make_ajax_field(Page, 'edit_groups', 'groups', help_text="", label=_("edit groups"))
|
||||||
'edit_groups': CheckboxSelectMultiple,
|
view_groups = make_ajax_field(Page, 'view_groups', 'groups', help_text="", label=_("view groups"))
|
||||||
'view_groups': CheckboxSelectMultiple,
|
|
||||||
}
|
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(PageForm, self).__init__(*args, **kwargs)
|
super(PageForm, self).__init__(*args, **kwargs)
|
||||||
|
Loading…
Reference in New Issue
Block a user