Make some weekmail views

This commit is contained in:
Skia
2017-01-03 16:50:53 +01:00
parent 8bd8191030
commit 9d1eaed625
5 changed files with 32 additions and 9 deletions

View File

@ -1,7 +1,8 @@
from django.db import models
from django.db import models, transaction
from django.utils.translation import ugettext_lazy as _
from django.core.urlresolvers import reverse_lazy, reverse
from django.conf import settings
from django.core.mail import EmailMessage
from core.models import User
from club.models import Club
@ -70,7 +71,7 @@ class Weekmail(models.Model):
"""
The weekmail class
"""
title = models.CharField(_("title"), max_length=64)
title = models.CharField(_("title"), max_length=64, blank=True)
intro = models.TextField(_("intro"), blank=True)
joke = models.TextField(_("joke"), blank=True)
protip = models.TextField(_("protip"), blank=True)
@ -81,9 +82,18 @@ class Weekmail(models.Model):
ordering = ['-id']
def send(self):
print("Sending weekmail n°" + str(self.id))
self.sent = True
self.save()
with transaction.atomic():
print("Sending weekmail n°" + str(self.id))
email = EmailMessage(
subject=self.title,
body="\n\n".join([self.intro, self.joke, self.protip, self.conclusion]),
from_email=settings.DEFAULT_FROM_EMAIL,
to=[],
bcc=Sith.objects.first().weekmail_destinations.split(' '),
)
self.sent = True
self.save()
Weekmail().save()
class WeekmailArticle(models.Model):
weekmail = models.ForeignKey(Weekmail, related_name="articles", verbose_name=_("weekmail"))

View File

@ -5,8 +5,13 @@
{% endblock %}
{% block content %}
<h3>{% trans %}Weekmail{% endtrans %}</h3>
{{ object }}
<h3>{% trans %}Weekmail{% endtrans %}</h3>
{{ object }}
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p() }}
<p><input type="submit" value="{% trans %}Save{% endtrans %}" /></p>
</form>
{% endblock %}

View File

@ -7,6 +7,7 @@ urlpatterns = [
url(r'^sith/edit/info$', InfoMsgEditView.as_view(), name='info_edit'),
url(r'^sith/edit/index$', IndexEditView.as_view(), name='index_edit'),
url(r'^weekmail$', WeekmailEditView.as_view(), name='weekmail'),
url(r'^weekmail/club/(?P<club_id>[0-9]+)/new_article$', WeekmailArticleCreateView.as_view(), name='weekmail_article'),
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'),

View File

@ -223,8 +223,14 @@ class NewsDetailView(CanViewMixin, DetailView):
class WeekmailEditView(UpdateView):
model = Weekmail
template_name = 'com/weekmail.jinja'
fields = ['title', 'intro', 'joke', 'protip', 'conclusion']
success_url = reverse_lazy('com:weekmail')
def get_object(self, queryset=None):
return self.model.objects.order_by('-id').first()
weekmail = self.model.objects.filter(sent=False).order_by('-id').first()
if not weekmail.title:
now = timezone.now()
weekmail.title = _("Weekmail of the ") + (now + timedelta(days=6 - now.weekday())).strftime('%d/%m/%Y')
return weekmail