add end of conference date
This commit is contained in:
parent
1af6ada49d
commit
87d9b070c0
|
@ -373,8 +373,11 @@ class ConferenceForm(forms.ModelForm):
|
|||
class Meta:
|
||||
model = Conference
|
||||
fields = [
|
||||
'name', 'venue', 'city', 'contact_email', 'acceptances_disclosure_date', 'schedule_publishing_date', 'schedule_redirection_url',
|
||||
'volunteers_opening_date', 'volunteers_closing_date', 'video_publishing_date', 'reply_email', 'secure_domain', 'staff',
|
||||
'name', 'venue', 'city', 'contact_email', 'acceptances_disclosure_date',
|
||||
'schedule_publishing_date', 'schedule_redirection_url',
|
||||
'volunteers_opening_date', 'volunteers_closing_date',
|
||||
'end_date', 'video_publishing_date',
|
||||
'reply_email', 'secure_domain', 'staff',
|
||||
]
|
||||
widgets = {
|
||||
'staff': UsersWidget(),
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 2.0 on 2019-06-08 10:59
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cfp', '0025_auto_20171216_1546'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='conference',
|
||||
name='end_date',
|
||||
field=models.DateTimeField(blank=True, default=None, null=True, verbose_name='End of the conference date'),
|
||||
),
|
||||
]
|
|
@ -42,6 +42,7 @@ class Conference(models.Model):
|
|||
volunteers_opening_date = models.DateTimeField(null=True, blank=True, default=None, verbose_name=_('Volunteers enrollment opening date'))
|
||||
volunteers_closing_date = models.DateTimeField(null=True, blank=True, default=None, verbose_name=_('Volunteers enrollment closing date'))
|
||||
video_publishing_date = models.DateTimeField(null=True, blank=True, default=None, verbose_name=_('Video publishing date'))
|
||||
end_date = models.DateTimeField(null=True, blank=True, default=None, verbose_name=_('End of the conference date'))
|
||||
|
||||
custom_css = models.TextField(blank=True)
|
||||
external_css_link = models.URLField(blank=True)
|
||||
|
@ -52,6 +53,10 @@ class Conference(models.Model):
|
|||
closing = self.volunteers_closing_date
|
||||
return opening and opening < now and (not closing or closing > now)
|
||||
|
||||
@property
|
||||
def completed(self):
|
||||
return self.end_date and self.end_date <= timezone.now()
|
||||
|
||||
@property
|
||||
def opened_categories(self):
|
||||
now = timezone.now()
|
||||
|
|
10
cfp/views.py
10
cfp/views.py
|
@ -14,6 +14,7 @@ from django.core.mail import send_mail
|
|||
from django.forms import modelform_factory
|
||||
from django import forms
|
||||
from django.views.decorators.http import require_http_methods
|
||||
from django.core.cache import cache
|
||||
|
||||
from django_select2.views import AutoResponseView
|
||||
|
||||
|
@ -426,7 +427,7 @@ def proposal_talk_edit(request, speaker, talk_id=None):
|
|||
def proposal_talk_acknowledgment(request, speaker, talk_id, confirm):
|
||||
# TODO: handle multiple speakers case
|
||||
talk = get_object_or_404(Talk, site=request.conference.site, speakers__pk=speaker.pk, pk=talk_id)
|
||||
if not request.conference.disclosed_acceptances or not talk.accepted:
|
||||
if not request.conference.disclosed_acceptances or not talk.accepted or request.conference.completed:
|
||||
raise PermissionDenied
|
||||
if talk.confirmed == confirm:
|
||||
if confirm:
|
||||
|
@ -1312,5 +1313,12 @@ def staff_schedule(request, program_format):
|
|||
return schedule(request, program_format=program_format, pending=True, template='cfp/staff/schedule.html', cache=False)
|
||||
|
||||
|
||||
@staff_required
|
||||
def schedule_evict(request):
|
||||
cache.clear()
|
||||
messages.success(request, _('Schedule evicted from cache.'))
|
||||
return redirect('/')
|
||||
|
||||
|
||||
class Select2View(StaffRequiredMixin, AutoResponseView):
|
||||
pass
|
||||
|
|
Loading…
Reference in New Issue