readers = models.ManyToManyField(User, related_name="conference", verbose_name=_('readers'),
blank=True, null=True)
status = models.IntegerField(_('status'), choices=STATUS_CHOICES, default=2)
- streaming = models.BooleanField(_('streaming'), default=True)
- web_class_group = models.ForeignKey('WebClassGroup', related_name='conferences', verbose_name=_('web class group'),
+ class_group = models.ForeignKey('ClassGroup', related_name='conferences', verbose_name=_('class group'),
blank=True, null=True, on_delete=models.SET_NULL)
- streaming = models.BooleanField(_('streaming'))
++ streaming = models.BooleanField(_('streaming'), default=True)
@property
def description(self):
verbose_name=_('magistral'),
blank=True, null=True)
cost = models.FloatField(_('cost'), blank=True, null=True)
+ cost_elearning_fascicle = models.FloatField(_('e-learning cost with fascicle'), blank=True, null=True)
+ cost_elearning_nofascicle = models.FloatField(_('e-learning cost without fascicle'), blank=True, null=True)
available = models.BooleanField(_('available'))
-
+ platform_only = models.BooleanField(_('e-learning platform only'))
+ duration = models.IntegerField(u"Durée en heures", default=0)
+
def __unicode__(self):
if self.name and self.period:
return ' - '.join([self.name, self.period.name])
fascicule = models.BooleanField(_('envoi des fascicules'), blank=True,
default=False)
-
+ payment_type = models.CharField(_('type de paiement'), choices=payment_choices,
+ max_length=64, blank=True, null=True,
+ default='online')
+ payment_schedule = models.CharField(_(u'échéancier de paiement'),
+ choices=payment_schedule_choices,
+ max_length=64, blank=True, null=True,
+ default='split')
+ comment = models.TextField(_('commentaire'), blank=True, null=True)
+
+ receipt_id = models.IntegerField('numéro de facture', blank=True, null=True,
+ unique=True)
++
def __unicode__(self):
try:
return self.user.last_name + ' ' + self.user.first_name
@property
def total_payments(self):
amount = 0
- for payment in self.payments.values('value'):
+ for payment in self.payments.values('value', 'type', 'online_paid'):
+ if payment['type'] != 'online' or payment['online_paid']:
+ amount += payment['value']
+ return amount
-
++
+ @property
+ def total_payments_all(self):
+ amount = 0
+ for payment in self.payments.values('value', 'type', 'online_paid'):
amount += payment['value']
return amount
verbose_name = _('profile')
-
+
+ PAY_STATUS_CHOICES = [
+ ('honoraires', 'Honoraires'),
+ ('salarie', 'Salarié'),
+ ]
+ class Corrector(Model):
+ "A corrector profile, only used for registration for the moment"
+
+ user = models.ForeignKey(User, related_name='corrector', verbose_name=_('user'), unique=True)
+ period = models.ForeignKey('Period', related_name='corrector', verbose_name=_('period'),
+ blank=True, null=True, on_delete=models.SET_NULL)
+ pay_status = models.CharField('Statut', choices=PAY_STATUS_CHOICES,
+ max_length=64, blank=True, null=True,
+ default='honoraire')
-
-
++
+ date_registered = models.DateTimeField(_('registration date'), auto_now_add=True, null=True, blank=True)
-
++
++
+ def __unicode__(self):
+ try:
+ return self.user.last_name + ' ' + self.user.first_name
+ except:
+ return ''
+
++
+ class Meta(MetaCore):
+ db_table = app_label + '_' + 'corrector'
+ verbose_name = _('Correcteur')
+ verbose_name_plural = _('Correcteurs')
+ ordering = ['user__last_name', '-date_registered']
+
+
months_choices = []
for i in range(1,13):
months_choices.append((i, datetime.date(2015, i, 1).strftime('%B')))
date_created = models.DateTimeField(_('date created'), auto_now_add=True)
date_modified = models.DateTimeField(_('date modified'), auto_now=True)
-
+ scheduled = models.DateField(u"date d'échéance", blank=True, null=True)
+ online_paid = models.BooleanField(u"payé",
+ help_text=u"paiement en ligne uniquement",
+ blank=True)
+
++
class Meta(MetaCore):
db_table = app_label + '_' + 'payments'
verbose_name = _("Payment")
conference.from_json_dict(conf_dict)
conference.save()
- for stream in conf_dict['streams']:
- host = getattr(settings, "TELECASTER_LIVE_STREAMING_SERVER", stream['host'])
- port = getattr(settings, "TELECASTER_LIVE_STREAMING_PORT", stream['port'])
- server_type = stream['server_type']
- stream_type = stream['stream_type']
- #site = Site.objects.all()[0]
- server, c = StreamingServer.objects.get_or_create(host=host,
- port=port,
- type=server_type)
- stream = LiveStream(conference=conference, server=server,
- stream_type=stream_type, streaming=True)
- stream.save()
-
- if not conference.class_group:
- try:
- live_message(conference)
- except:
- pass
+ if conference.streaming:
+ for stream in conf_dict['streams']:
+ host = getattr(settings, "TELECASTER_LIVE_STREAMING_SERVER", stream['host'])
+ server_type = stream['server_type']
+ stream_type = stream['stream_type']
+ if server_type == 'icecast':
+ port = getattr(settings, "TELECASTER_LIVE_ICECAST_STREAMING_PORT", stream['port'])
+ elif server_type == 'stream-m':
+ port = getattr(settings, "TELECASTER_LIVE_STREAM_M_STREAMING_PORT", stream['port'])
+ #site = Site.objects.all()[0]
+ server, c = StreamingServer.objects.get_or_create(host=host,
+ port=port,
+ type=server_type)
+ stream = LiveStream(conference=conference, server=server,
+ stream_type=stream_type, streaming=True)
+ stream.save()
+
- if not conference.web_class_group:
++ if not conference.class_group:
+ try:
+ live_message(conference)
+ except:
+ pass
else:
raise 'Error : input must be a conference dictionnary'