Changeset - 420d8ec870bd
[Not reviewed]
0 6 1
Scott Bragg - 8 years ago 2016-09-03 02:48:31
jsbragg@scriptforge.org
Remove description from Presentation, add fields to proposal for notification template.
7 files changed with 31 insertions and 8 deletions:
0 comments (0 inline, 0 general)
requirements/base.txt
Show inline comments
 
Django>=1.9.2
 
Django==1.9.2
 
django-appconf==1.0.1
 
django-model-utils==2.4.0
 
django-reversion==1.10.1
 
django-sitetree==1.5.1
 
django-taggit==0.18.0
 
django-timezone-field==1.3
symposion/proposals/models.py
Show inline comments
...
 
@@ -193,14 +193,15 @@ class ProposalBase(models.Model):
 
        for speaker in speakers:
 
            yield speaker
 

	
 
    def notification_email_context(self):
 
        return {
 
            "title": self.title,
 
            "speaker": self.speaker.name,
 
            "speaker": self.speaker,
 
            "speakers": ', '.join([x.name for x in self.speakers()]),
 
            "additional_speakers": self.additional_speakers,
 
            "kind": self.kind.name,
 
        }
 

	
 
    def __str__(self):
 
        return self.title
 

	
symposion/reviews/models.py
Show inline comments
...
 
@@ -358,13 +358,12 @@ def promote_proposal(proposal):
 
    if hasattr(proposal, "presentation") and proposal.presentation:
 
        # already promoted
 
        presentation = proposal.presentation
 
    else:
 
        presentation = Presentation(
 
            title=proposal.title,
 
            description=proposal.description,
 
            abstract=proposal.abstract,
 
            speaker=proposal.speaker,
 
            section=proposal.section,
 
            proposal_base=proposal,
 
        )
 
        presentation.save()
symposion/reviews/views.py
Show inline comments
...
 
@@ -642,13 +642,17 @@ def result_notification_send(request, section_slug, status):
 
    for proposal in proposals:
 
        rn = ResultNotification()
 
        rn.proposal = proposal
 
        rn.template = notification_template
 
        rn.to_address = proposal.speaker_email
 
        rn.from_address = request.POST["from_address"]
 
        rn.subject = request.POST["subject"]
 
        rn.subject = Template(request.POST["subject"]).render(
 
            Context({
 
                "proposal": proposal.notification_email_context()
 
            })
 
        )
 
        rn.body = Template(request.POST["body"]).render(
 
            Context({
 
                "proposal": proposal.notification_email_context()
 
            })
 
        )
 
        rn.save()
symposion/schedule/migrations/0002_auto_20160903_0146.py
Show inline comments
 
new file 100644
 
# -*- coding: utf-8 -*-
 
# Generated by Django 1.9.2 on 2016-09-03 01:46
 
from __future__ import unicode_literals
 

	
 
from django.db import migrations, models
 

	
 

	
 
class Migration(migrations.Migration):
 

	
 
    dependencies = [
 
        ('symposion_schedule', '0001_initial'),
 
    ]
 

	
 
    operations = [
 
        migrations.RemoveField(
 
            model_name='presentation',
 
            name='description',
 
        ),
 
        migrations.RemoveField(
 
            model_name='presentation',
 
            name='description_html',
 
        ),
 
    ]
symposion/schedule/models.py
Show inline comments
...
 
@@ -182,25 +182,22 @@ class SlotRoom(models.Model):
 

	
 
@python_2_unicode_compatible
 
class Presentation(models.Model):
 

	
 
    slot = models.OneToOneField(Slot, null=True, blank=True, related_name="content_ptr", verbose_name=_("Slot"))
 
    title = models.CharField(max_length=100, verbose_name=_("Title"))
 
    description = models.TextField(verbose_name=_("Description"))
 
    description_html = models.TextField(blank=True)
 
    abstract = models.TextField(verbose_name=_("Abstract"))
 
    abstract_html = models.TextField(blank=True)
 
    speaker = models.ForeignKey(Speaker, related_name="presentations", verbose_name=_("Speaker"))
 
    additional_speakers = models.ManyToManyField(Speaker, related_name="copresentations",
 
                                                 blank=True, verbose_name=_("Additional speakers"))
 
    cancelled = models.BooleanField(default=False, verbose_name=_("Cancelled"))
 
    proposal_base = models.OneToOneField(ProposalBase, related_name="presentation", verbose_name=_("Proposal base"))
 
    section = models.ForeignKey(Section, related_name="presentations", verbose_name=_("Section"))
 

	
 
    def save(self, *args, **kwargs):
 
        self.description_html = parse(self.description)
 
        self.abstract_html = parse(self.abstract)
 
        return super(Presentation, self).save(*args, **kwargs)
 

	
 
    @property
 
    def number(self):
 
        return self.proposal.number
symposion/schedule/views.py
Show inline comments
...
 
@@ -222,13 +222,12 @@ def schedule_json(request):
 
                "name": slot.content.title,
 
                "authors": [s.name for s in slot.content.speakers()],
 
                "contact": [
 
                    s.email for s in slot.content.speakers()
 
                ] if request.user.is_staff else ["redacted"],
 
                "abstract": slot.content.abstract.raw,
 
                "description": slot.content.description.raw,
 
                "conf_url": "%s://%s%s" % (
 
                    protocol,
 
                    Site.objects.get_current().domain,
 
                    reverse("schedule_presentation_detail", args=[slot.content.pk])
 
                ),
 
                "cancelled": slot.content.cancelled,
0 comments (0 inline, 0 general)