]> git.parisson.com Git - teleforma.git/commitdiff
Merge branch 'dev' into feature/webclass feature/webclass
authorGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Wed, 22 Apr 2020 22:25:21 +0000 (00:25 +0200)
committerGuillaume Pellerin <guillaume.pellerin@ircam.fr>
Wed, 22 Apr 2020 22:25:21 +0000 (00:25 +0200)
1  2 
teleforma/admin.py
teleforma/models/core.py
teleforma/models/crfpa.py
teleforma/templates/teleforma/course_media.html
teleforma/templates/teleforma/inc/conference_list.html
teleforma/templatetags/teleforma_tags.py
teleforma/views/core.py

Simple merge
index 9dc13ee2ee0a3d4529235639bdf2fc1bf071cb07,c9d63e2e64f2f4b074a98add8e21ca756dd5f86d..3bec3aa16864015167f2629b17a4ae858ea8acda
mode 100644,100755..100755
@@@ -328,9 -342,9 +342,9 @@@ class Conference(models.Model)
      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):
index 84cde210a65b1b0e9de832eb44b16d7c24872a84,a3bbef12769a7db54ffa373efc64dd7f2c9899ca..3ed1fecb2b9a81aeadd296a7d3be455cb4928f15
@@@ -111,8 -108,12 +111,12 @@@ class Training(Model)
                                          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])
@@@ -179,6 -183,18 +186,18 @@@ class Student(Model)
      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
  
@@@ -271,6 -305,38 +308,38 @@@ class Profile(models.Model)
          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')))
@@@ -287,6 -354,12 +357,12 @@@ class Payment(models.Model)
      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")
index 18d11badedbe9fc041a4303680bfb3423df917ec,c750fbc11075e9ae97db045d38dc1757900c9a4b..d295766c31caa4bc40a94cff1687795e9e28f79c
@@@ -1,8 -1,8 +1,8 @@@
  {% load teleforma_tags %}
  {% load i18n %}
  
- {% with course.conference.all|from_course_type:type|from_period:period as conferences %}
 -{% with course.conference.all|from_course_type:type|streaming_only as conferences %}
 -{% if conferences|from_period:period %}
++{% with course.conference.all|from_course_type:type|from_period:period|streaming_only as conferences %}
 +{% if conferences %}
  <div class="course_content content_video">
  <div class="course_subtitle">
      <h3><img src="/static/telemeta/images/item_title.png" width="10px" alt="" /> {% trans "Live conferences"%}</h3>
index 37e9184a94d7a9b380a715d88e24765e192f68ac,0d661b742c98a805c454de0871e0dec3e66c1eeb..7af648016e1503c2578238813039c63eee2e3886
@@@ -758,24 -760,28 +761,28 @@@ class ConferenceRecordView(FormView)
                  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'