From 8f839a1e0e4f2cac2ef92aad0ace1c64d4e8c7ef Mon Sep 17 00:00:00 2001 From: Hiroshi Miura Date: Sat, 18 Jul 2015 15:42:27 +0900 Subject: [PATCH 1/3] presentation title and abstract now get from proposal Signed-off-by: Hiroshi Miura --- symposion/schedule/models.py | 45 ++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/symposion/schedule/models.py b/symposion/schedule/models.py index 22aad378..1e4964ee 100644 --- a/symposion/schedule/models.py +++ b/symposion/schedule/models.py @@ -12,7 +12,6 @@ from symposion.proposals.models import ProposalBase from symposion.conference.models import Section -from symposion.speakers.models import Speaker @python_2_unicode_compatible @@ -178,25 +177,51 @@ class Meta: 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 = MarkupField(verbose_name=_("Description")) - abstract = MarkupField(verbose_name=_("Abstract")) - 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")) + @property + def proposal(self): + if self.proposal_base_id is None: + return None + return ProposalBase.objects.get_subclass(pk=self.proposal_base_id) + @property def number(self): + if self.proposal is None: + return None return self.proposal.number @property - def proposal(self): - if self.proposal_base_id is None: + def speaker(self): + if self.proposal is None: return None - return ProposalBase.objects.get_subclass(pk=self.proposal_base_id) + return self.proposal.speaker + + @property + def title(self): + if self.proposal is None: + return None + return self.proposal.title + + @property + def description(self): + if self.proposal is None: + return None + return self.proposal.description + + @property + def abstract(self): + if self.proposal is None: + return None + return self.proposal.abstract + + @property + def additional_speakers(self): + if self.proposal is None: + return None + return self.proposal.additional_speakers def speakers(self): yield self.speaker From 92ee1408da9e660014502b86a354a820ce7ec0a5 Mon Sep 17 00:00:00 2001 From: Hiroshi Miura Date: Sat, 25 Jul 2015 14:50:10 +0900 Subject: [PATCH 2/3] proposalbase: return better proposal name Signed-off-by: Hiroshi Miura --- symposion/proposals/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/symposion/proposals/models.py b/symposion/proposals/models.py index e979f7a8..d2dc3a85 100644 --- a/symposion/proposals/models.py +++ b/symposion/proposals/models.py @@ -164,7 +164,7 @@ def notification_email_context(self): } def __str__(self): - return self.title + return "%s - %s(%s)" % (self.title, self.speaker.name, self.kind.name) reversion.register(ProposalBase) From 8aa5abb053994371e51bb63b4ff01d8a236b6ffd Mon Sep 17 00:00:00 2001 From: Hiroshi Miura Date: Sat, 25 Jul 2015 15:20:16 +0900 Subject: [PATCH 3/3] proposalbase: gen name when save Signed-off-by: Hiroshi Miura --- symposion/proposals/models.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/symposion/proposals/models.py b/symposion/proposals/models.py index d2dc3a85..b53479a3 100644 --- a/symposion/proposals/models.py +++ b/symposion/proposals/models.py @@ -88,6 +88,8 @@ class ProposalBase(models.Model): kind = models.ForeignKey(ProposalKind, verbose_name=_("Kind")) title = models.CharField(max_length=100, verbose_name=_("Title")) + name = models.CharField(max_length=100, editable=False) + description = models.TextField( _("Brief Description"), max_length=400, # @@@ need to enforce 400 in UI @@ -163,8 +165,12 @@ def notification_email_context(self): "kind": self.kind.name, } + def save(self, *args, **kwargs): + self.name = "%s - %s(%s)" % (self.title, self.speaker.name, self.kind.name) + super(ProposalBase, self).save(*args, **kwargs) + def __str__(self): - return "%s - %s(%s)" % (self.title, self.speaker.name, self.kind.name) + return self.name reversion.register(ProposalBase)