mirror of
https://github.com/ae-utbm/sith.git
synced 2025-07-09 19:40:19 +00:00
Merge branch 'new_django' into 'master'
upgrade to django 2.2 See merge request ae/Sith!243
This commit is contained in:
@ -3,6 +3,7 @@ from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
from django.conf import settings
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
@ -50,6 +51,7 @@ class Migration(migrations.Migration):
|
||||
(
|
||||
"author",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="owned_news",
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
verbose_name="author",
|
||||
@ -58,12 +60,16 @@ class Migration(migrations.Migration):
|
||||
(
|
||||
"club",
|
||||
models.ForeignKey(
|
||||
related_name="news", to="club.Club", verbose_name="club"
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="news",
|
||||
to="club.Club",
|
||||
verbose_name="club",
|
||||
),
|
||||
),
|
||||
(
|
||||
"moderator",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="moderated_news",
|
||||
null=True,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
@ -99,7 +105,10 @@ class Migration(migrations.Migration):
|
||||
(
|
||||
"news",
|
||||
models.ForeignKey(
|
||||
related_name="dates", to="com.News", verbose_name="news_date"
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="dates",
|
||||
to="com.News",
|
||||
verbose_name="news_date",
|
||||
),
|
||||
),
|
||||
],
|
||||
|
@ -3,6 +3,7 @@ from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
from django.conf import settings
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
@ -56,6 +57,7 @@ class Migration(migrations.Migration):
|
||||
(
|
||||
"author",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
verbose_name="author",
|
||||
related_name="owned_weekmail_articles",
|
||||
@ -64,6 +66,7 @@ class Migration(migrations.Migration):
|
||||
(
|
||||
"club",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="club.Club",
|
||||
verbose_name="club",
|
||||
related_name="weekmail_articles",
|
||||
@ -72,6 +75,7 @@ class Migration(migrations.Migration):
|
||||
(
|
||||
"weekmail",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="com.Weekmail",
|
||||
verbose_name="weekmail",
|
||||
related_name="articles",
|
||||
|
@ -4,6 +4,7 @@ from __future__ import unicode_literals
|
||||
from django.db import migrations, models
|
||||
import django.utils.timezone
|
||||
from django.conf import settings
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
@ -48,12 +49,16 @@ class Migration(migrations.Migration):
|
||||
(
|
||||
"club",
|
||||
models.ForeignKey(
|
||||
verbose_name="club", related_name="posters", to="club.Club"
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
verbose_name="club",
|
||||
related_name="posters",
|
||||
to="club.Club",
|
||||
),
|
||||
),
|
||||
(
|
||||
"moderator",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
verbose_name="moderator",
|
||||
blank=True,
|
||||
null=True,
|
||||
|
@ -28,7 +28,7 @@ from django.db import models, transaction
|
||||
from django.db.models import Q
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils import timezone
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.urls import reverse
|
||||
from django.conf import settings
|
||||
from django.contrib.staticfiles.templatetags.staticfiles import static
|
||||
from django.core.mail import EmailMultiAlternatives
|
||||
@ -71,13 +71,22 @@ class News(models.Model):
|
||||
type = models.CharField(
|
||||
_("type"), max_length=16, choices=NEWS_TYPES, default="EVENT"
|
||||
)
|
||||
club = models.ForeignKey(Club, related_name="news", verbose_name=_("club"))
|
||||
club = models.ForeignKey(
|
||||
Club, related_name="news", verbose_name=_("club"), on_delete=models.CASCADE
|
||||
)
|
||||
author = models.ForeignKey(
|
||||
User, related_name="owned_news", verbose_name=_("author")
|
||||
User,
|
||||
related_name="owned_news",
|
||||
verbose_name=_("author"),
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
is_moderated = models.BooleanField(_("is moderated"), default=False)
|
||||
moderator = models.ForeignKey(
|
||||
User, related_name="moderated_news", verbose_name=_("moderator"), null=True
|
||||
User,
|
||||
related_name="moderated_news",
|
||||
verbose_name=_("moderator"),
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
|
||||
def is_owned_by(self, user):
|
||||
@ -138,7 +147,12 @@ class NewsDate(models.Model):
|
||||
we don't have to make copies
|
||||
"""
|
||||
|
||||
news = models.ForeignKey(News, related_name="dates", verbose_name=_("news_date"))
|
||||
news = models.ForeignKey(
|
||||
News,
|
||||
related_name="dates",
|
||||
verbose_name=_("news_date"),
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
start_date = models.DateTimeField(_("start_date"), null=True, blank=True)
|
||||
end_date = models.DateTimeField(_("end_date"), null=True, blank=True)
|
||||
|
||||
@ -230,15 +244,25 @@ class Weekmail(models.Model):
|
||||
|
||||
class WeekmailArticle(models.Model):
|
||||
weekmail = models.ForeignKey(
|
||||
Weekmail, related_name="articles", verbose_name=_("weekmail"), null=True
|
||||
Weekmail,
|
||||
related_name="articles",
|
||||
verbose_name=_("weekmail"),
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
title = models.CharField(_("title"), max_length=64)
|
||||
content = models.TextField(_("content"))
|
||||
author = models.ForeignKey(
|
||||
User, related_name="owned_weekmail_articles", verbose_name=_("author")
|
||||
User,
|
||||
related_name="owned_weekmail_articles",
|
||||
verbose_name=_("author"),
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
club = models.ForeignKey(
|
||||
Club, related_name="weekmail_articles", verbose_name=_("club")
|
||||
Club,
|
||||
related_name="weekmail_articles",
|
||||
verbose_name=_("club"),
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
rank = models.IntegerField(_("rank"), default=-1)
|
||||
|
||||
@ -271,7 +295,11 @@ class Poster(models.Model):
|
||||
)
|
||||
file = models.ImageField(_("file"), null=False, upload_to="com/posters")
|
||||
club = models.ForeignKey(
|
||||
Club, related_name="posters", verbose_name=_("club"), null=False
|
||||
Club,
|
||||
related_name="posters",
|
||||
verbose_name=_("club"),
|
||||
null=False,
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
screens = models.ManyToManyField(Screen, related_name="posters")
|
||||
date_begin = models.DateTimeField(blank=False, null=False, default=timezone.now)
|
||||
@ -286,6 +314,7 @@ class Poster(models.Model):
|
||||
verbose_name=_("moderator"),
|
||||
null=True,
|
||||
blank=True,
|
||||
on_delete=models.CASCADE,
|
||||
)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
from django.test import TestCase
|
||||
from django.conf import settings
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.urls import reverse
|
||||
from django.core.management import call_command
|
||||
from django.utils import html
|
||||
from django.utils.translation import ugettext as _
|
||||
@ -62,7 +62,7 @@ class ComTest(TestCase):
|
||||
self.com_group = RealGroup.objects.filter(
|
||||
id=settings.SITH_GROUP_COM_ADMIN_ID
|
||||
).first()
|
||||
self.skia.groups = [self.com_group]
|
||||
self.skia.groups.set([self.com_group])
|
||||
self.skia.save()
|
||||
self.client.login(username=self.skia.username, password="plop")
|
||||
|
||||
|
66
com/urls.py
66
com/urls.py
@ -22,97 +22,103 @@
|
||||
#
|
||||
#
|
||||
|
||||
from django.conf.urls import url
|
||||
from django.urls import re_path
|
||||
|
||||
from com.views import *
|
||||
from club.views import MailingDeleteView
|
||||
|
||||
urlpatterns = [
|
||||
url(r"^sith/edit/alert$", AlertMsgEditView.as_view(), name="alert_edit"),
|
||||
url(r"^sith/edit/info$", InfoMsgEditView.as_view(), name="info_edit"),
|
||||
url(
|
||||
re_path(r"^sith/edit/alert$", AlertMsgEditView.as_view(), name="alert_edit"),
|
||||
re_path(r"^sith/edit/info$", InfoMsgEditView.as_view(), name="info_edit"),
|
||||
re_path(
|
||||
r"^sith/edit/weekmail_destinations$",
|
||||
WeekmailDestinationEditView.as_view(),
|
||||
name="weekmail_destinations",
|
||||
),
|
||||
url(r"^weekmail$", WeekmailEditView.as_view(), name="weekmail"),
|
||||
url(r"^weekmail/preview$", WeekmailPreviewView.as_view(), name="weekmail_preview"),
|
||||
url(
|
||||
re_path(r"^weekmail$", WeekmailEditView.as_view(), name="weekmail"),
|
||||
re_path(
|
||||
r"^weekmail/preview$", WeekmailPreviewView.as_view(), name="weekmail_preview"
|
||||
),
|
||||
re_path(
|
||||
r"^weekmail/new_article$",
|
||||
WeekmailArticleCreateView.as_view(),
|
||||
name="weekmail_article",
|
||||
),
|
||||
url(
|
||||
re_path(
|
||||
r"^weekmail/article/(?P<article_id>[0-9]+)/delete$",
|
||||
WeekmailArticleDeleteView.as_view(),
|
||||
name="weekmail_article_delete",
|
||||
),
|
||||
url(
|
||||
re_path(
|
||||
r"^weekmail/article/(?P<article_id>[0-9]+)/edit$",
|
||||
WeekmailArticleEditView.as_view(),
|
||||
name="weekmail_article_edit",
|
||||
),
|
||||
url(r"^news$", NewsListView.as_view(), name="news_list"),
|
||||
url(r"^news/admin$", NewsAdminListView.as_view(), name="news_admin_list"),
|
||||
url(r"^news/create$", NewsCreateView.as_view(), name="news_new"),
|
||||
url(
|
||||
re_path(r"^news$", NewsListView.as_view(), name="news_list"),
|
||||
re_path(r"^news/admin$", NewsAdminListView.as_view(), name="news_admin_list"),
|
||||
re_path(r"^news/create$", NewsCreateView.as_view(), name="news_new"),
|
||||
re_path(
|
||||
r"^news/(?P<news_id>[0-9]+)/delete$",
|
||||
NewsDeleteView.as_view(),
|
||||
name="news_delete",
|
||||
),
|
||||
url(
|
||||
re_path(
|
||||
r"^news/(?P<news_id>[0-9]+)/moderate$",
|
||||
NewsModerateView.as_view(),
|
||||
name="news_moderate",
|
||||
),
|
||||
url(r"^news/(?P<news_id>[0-9]+)/edit$", NewsEditView.as_view(), name="news_edit"),
|
||||
url(r"^news/(?P<news_id>[0-9]+)$", NewsDetailView.as_view(), name="news_detail"),
|
||||
url(r"^mailings$", MailingListAdminView.as_view(), name="mailing_admin"),
|
||||
url(
|
||||
re_path(
|
||||
r"^news/(?P<news_id>[0-9]+)/edit$", NewsEditView.as_view(), name="news_edit"
|
||||
),
|
||||
re_path(
|
||||
r"^news/(?P<news_id>[0-9]+)$", NewsDetailView.as_view(), name="news_detail"
|
||||
),
|
||||
re_path(r"^mailings$", MailingListAdminView.as_view(), name="mailing_admin"),
|
||||
re_path(
|
||||
r"^mailings/(?P<mailing_id>[0-9]+)/moderate$",
|
||||
MailingModerateView.as_view(),
|
||||
name="mailing_moderate",
|
||||
),
|
||||
url(
|
||||
re_path(
|
||||
r"^mailings/(?P<mailing_id>[0-9]+)/delete$",
|
||||
MailingDeleteView.as_view(redirect_page="com:mailing_admin"),
|
||||
name="mailing_delete",
|
||||
),
|
||||
url(r"^poster$", PosterListView.as_view(), name="poster_list"),
|
||||
url(r"^poster/create$", PosterCreateView.as_view(), name="poster_create"),
|
||||
url(
|
||||
re_path(r"^poster$", PosterListView.as_view(), name="poster_list"),
|
||||
re_path(r"^poster/create$", PosterCreateView.as_view(), name="poster_create"),
|
||||
re_path(
|
||||
r"^poster/(?P<poster_id>[0-9]+)/edit$",
|
||||
PosterEditView.as_view(),
|
||||
name="poster_edit",
|
||||
),
|
||||
url(
|
||||
re_path(
|
||||
r"^poster/(?P<poster_id>[0-9]+)/delete$",
|
||||
PosterDeleteView.as_view(),
|
||||
name="poster_delete",
|
||||
),
|
||||
url(
|
||||
re_path(
|
||||
r"^poster/moderate$",
|
||||
PosterModerateListView.as_view(),
|
||||
name="poster_moderate_list",
|
||||
),
|
||||
url(
|
||||
re_path(
|
||||
r"^poster/(?P<object_id>[0-9]+)/moderate$",
|
||||
PosterModerateView.as_view(),
|
||||
name="poster_moderate",
|
||||
),
|
||||
url(r"^screen$", ScreenListView.as_view(), name="screen_list"),
|
||||
url(r"^screen/create$", ScreenCreateView.as_view(), name="screen_create"),
|
||||
url(
|
||||
re_path(r"^screen$", ScreenListView.as_view(), name="screen_list"),
|
||||
re_path(r"^screen/create$", ScreenCreateView.as_view(), name="screen_create"),
|
||||
re_path(
|
||||
r"^screen/(?P<screen_id>[0-9]+)/slideshow$",
|
||||
ScreenSlideshowView.as_view(),
|
||||
name="screen_slideshow",
|
||||
),
|
||||
url(
|
||||
re_path(
|
||||
r"^screen/(?P<screen_id>[0-9]+)/edit$",
|
||||
ScreenEditView.as_view(),
|
||||
name="screen_edit",
|
||||
),
|
||||
url(
|
||||
re_path(
|
||||
r"^screen/(?P<screen_id>[0-9]+)/delete$",
|
||||
ScreenDeleteView.as_view(),
|
||||
name="screen_delete",
|
||||
|
15
com/views.py
15
com/views.py
@ -29,7 +29,7 @@ from django.views.generic import ListView, DetailView, View
|
||||
from django.views.generic.edit import UpdateView, CreateView, DeleteView
|
||||
from django.views.generic.detail import SingleObjectMixin
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.core.urlresolvers import reverse, reverse_lazy
|
||||
from django.urls import reverse, reverse_lazy
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils import timezone
|
||||
from django.conf import settings
|
||||
@ -74,14 +74,14 @@ class PosterForm(forms.ModelForm):
|
||||
widgets = {"screens": forms.CheckboxSelectMultiple}
|
||||
|
||||
date_begin = forms.DateTimeField(
|
||||
["%Y-%m-%d %H:%M:%S"],
|
||||
input_formats=["%Y-%m-%d %H:%M:%S"],
|
||||
label=_("Start date"),
|
||||
widget=SelectDateTime,
|
||||
required=True,
|
||||
initial=timezone.now().strftime("%Y-%m-%d %H:%M:%S"),
|
||||
)
|
||||
date_end = forms.DateTimeField(
|
||||
["%Y-%m-%d %H:%M:%S"],
|
||||
input_formats=["%Y-%m-%d %H:%M:%S"],
|
||||
label=_("End date"),
|
||||
widget=SelectDateTime,
|
||||
required=False,
|
||||
@ -200,19 +200,22 @@ class NewsForm(forms.ModelForm):
|
||||
}
|
||||
|
||||
start_date = forms.DateTimeField(
|
||||
["%Y-%m-%d %H:%M:%S"],
|
||||
input_formats=["%Y-%m-%d %H:%M:%S"],
|
||||
label=_("Start date"),
|
||||
widget=SelectDateTime,
|
||||
required=False,
|
||||
)
|
||||
end_date = forms.DateTimeField(
|
||||
["%Y-%m-%d %H:%M:%S"],
|
||||
input_formats=["%Y-%m-%d %H:%M:%S"],
|
||||
label=_("End date"),
|
||||
widget=SelectDateTime,
|
||||
required=False,
|
||||
)
|
||||
until = forms.DateTimeField(
|
||||
["%Y-%m-%d %H:%M:%S"], label=_("Until"), widget=SelectDateTime, required=False
|
||||
input_formats=["%Y-%m-%d %H:%M:%S"],
|
||||
label=_("Until"),
|
||||
widget=SelectDateTime,
|
||||
required=False,
|
||||
)
|
||||
automoderation = forms.BooleanField(label=_("Automoderation"), required=False)
|
||||
|
||||
|
Reference in New Issue
Block a user