]> git.parisson.com Git - teleforma.git/commitdiff
Merge branch 'crfpa' into tc202
authorGuillaume Pellerin <yomguy@parisson.com>
Fri, 12 Jul 2013 00:58:10 +0000 (02:58 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Fri, 12 Jul 2013 00:58:10 +0000 (02:58 +0200)
Conflicts:
teleforma/locale/fr/LC_MESSAGES/django.mo
teleforma/views/core.py

1  2 
example/settings.py
teleforma/locale/fr/LC_MESSAGES/django.mo
teleforma/locale/fr/LC_MESSAGES/django.po
teleforma/templates/teleforma/course_conference_record.html
teleforma/templates/teleforma/course_detail.html
teleforma/views/core.py

index 73a7f3efc06fc36da1c6cbbc2134e252569a77fe,6ef819925e6b53b235ac6cbc9cef7cf6971d74a8..80fdda5df7fdc6c16713d69b70f9d27db4b24976
@@@ -196,4 -196,7 +197,7 @@@ TELECASTER_MASTER_STREAMING = Tru
  # CRFPA or AE or PRO
  TELEFORMA_E_LEARNING_TYPE = 'CRFPA'
  TELEFORMA_GLOBAL_TWEETER = False
+ TELEFORMA_PERIOD_TWEETER = True
  
 -JQCHAT_DISPLAY_TIME  = 48
+ JQCHAT_DISPLAY_COUNT = 50
++JQCHAT_DISPLAY_TIME  = 48
index d3b6b0269198dafc8704bd5efc5a91ac85c286d6,b58874731ae97885bae57e7052f4cc65445019a9..e5b5d4b691e12f99a999cf93edeffb5f9b9ea4ad
Binary files differ
index c0b3128aedd1f128b8079e218ad2ce776e044fc8,5819ce51e77d8b86d01359a82bef5d3302510d7a..746f7541968d0ab5abd6e31de7b2abd7376e7c52
@@@ -6,7 -6,7 +6,7 @@@ msgid "
  msgstr ""
  "Project-Id-Version: PACKAGE VERSION\n"
  "Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2013-07-04 21:19+0200\n"
 -"POT-Creation-Date: 2013-07-12 02:53+0200\n"
++"POT-Creation-Date: 2013-07-12 02:58+0200\n"
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  "Last-Translator: Guillaume Pellerin <yomguy@parisson.com>\n"
  "Language-Team: LANGUAGE <lists@parisson.com>\n"
  "Content-Transfer-Encoding: 8bit\n"
  "Plural-Forms: nplurals=2; plural=(n > 1)\n"
  
--#: models/ae.py:46 models/core.py:177 models/crfpa.py:108 models/crfpa.py:149
++#: models/ae.py:46 models/core.py:184 models/crfpa.py:108 models/crfpa.py:149
  #: models/pro.py:101 models/pro.py:140
  msgid "user"
  msgstr "utilisateur"
  
- #: models/ae.py:47 models/core.py:131 models/core.py:209 models/core.py:453
- #: models/core.py:495 models/core.py:537 models/crfpa.py:64
 -#: models/ae.py:47 models/core.py:131 models/core.py:219 models/core.py:464
 -#: models/core.py:506 models/core.py:548 models/crfpa.py:64
++#: models/ae.py:47 models/core.py:134 models/core.py:226 models/core.py:471
++#: models/core.py:513 models/core.py:555 models/crfpa.py:64
  msgid "period"
  msgstr "période"
  
@@@ -30,7 -30,7 +30,7 @@@
  msgid "platform only"
  msgstr "plateforme seulement"
  
--#: models/ae.py:51 models/core.py:179
++#: models/ae.py:51 models/core.py:186
  msgid "courses"
  msgstr "matières"
  
@@@ -54,18 -50,18 +54,18 @@@ msgstr "Brouillon
  msgid "Public"
  msgstr "Publié"
  
--#: models/core.py:91 models/core.py:103 models/core.py:123 models/core.py:135
- #: models/core.py:193 models/core.py:431 models/crfpa.py:47 models/crfpa.py:63
 -#: models/core.py:203 models/core.py:442 models/crfpa.py:47 models/crfpa.py:63
++#: models/core.py:91 models/core.py:103 models/core.py:123 models/core.py:138
++#: models/core.py:210 models/core.py:449 models/crfpa.py:47 models/crfpa.py:63
  msgid "name"
  msgstr "nom"
  
--#: models/core.py:92 models/core.py:104 models/core.py:124 models/core.py:136
- #: models/core.py:150 models/core.py:194 models/core.py:346 models/core.py:412
- #: models/core.py:432 models/crfpa.py:48 models/pro.py:124
 -#: models/core.py:150 models/core.py:204 models/core.py:360 models/core.py:423
 -#: models/core.py:443 models/crfpa.py:48 models/pro.py:124
++#: models/core.py:92 models/core.py:104 models/core.py:124 models/core.py:139
++#: models/core.py:154 models/core.py:211 models/core.py:367 models/core.py:430
++#: models/core.py:450 models/crfpa.py:48 models/pro.py:124
  msgid "description"
  msgstr "description"
  
- #: models/core.py:99 models/core.py:106 models/core.py:192 models/pro.py:123
 -#: models/core.py:99 models/core.py:106 models/core.py:202 models/pro.py:123
++#: models/core.py:99 models/core.py:106 models/core.py:209 models/pro.py:123
  msgid "organization"
  msgstr "organisation"
  
  msgid "Master domain"
  msgstr ""
  
- #: models/core.py:118 models/core.py:148 models/core.py:207
 -#: models/core.py:118 models/core.py:148 models/core.py:217
++#: models/core.py:118 models/core.py:126 models/core.py:152 models/core.py:224
  msgid "department"
  msgstr "département"
  
- #: models/core.py:143 models/core.py:212 models/core.py:450 models/core.py:535
 -#: models/core.py:143 models/core.py:222 models/core.py:461 models/core.py:546
++#: models/core.py:146 models/core.py:229 models/core.py:468 models/core.py:553
  msgid "course type"
  msgstr "type de matière"
  
- #: models/core.py:149 models/core.py:411 models/pro.py:46 models/pro.py:83
 -#: models/core.py:149 models/core.py:422 models/pro.py:46 models/pro.py:83
++#: models/core.py:153 models/core.py:429 models/pro.py:46 models/pro.py:83
  msgid "title"
  msgstr "titre"
  
- #: models/core.py:151 models/core.py:416 models/crfpa.py:62
 -#: models/core.py:151 models/core.py:427 models/crfpa.py:62
++#: models/core.py:155 models/core.py:434 models/crfpa.py:62
  msgid "code"
  msgstr "cote"
  
--#: models/core.py:152
++#: models/core.py:156
  msgid "tweeter title"
  msgstr ""
  
- #: models/core.py:153 models/core.py:415 models/pro.py:68
 -#: models/core.py:153 models/core.py:426 models/pro.py:68
++#: models/core.py:157 models/core.py:433 models/pro.py:68
  msgid "date modified"
  msgstr "date de modification"
  
- #: models/core.py:154 models/core.py:433
 -#: models/core.py:154 models/core.py:444
++#: models/core.py:158 models/core.py:451
  msgid "number"
  msgstr ""
  
--#: models/core.py:155 models/crfpa.py:67
++#: models/core.py:159 models/crfpa.py:67
  msgid "synthesis note"
  msgstr "note de synthèse"
  
--#: models/core.py:156 models/crfpa.py:70
++#: models/core.py:160 models/crfpa.py:70
  msgid "obligations"
  msgstr "obligations"
  
--#: models/core.py:157 models/crfpa.py:91
++#: models/core.py:161 models/crfpa.py:91
  msgid "magistral"
  msgstr "magistral"
  
- #: models/core.py:170 models/core.py:211 models/core.py:448 models/core.py:533
 -#: models/core.py:170 models/core.py:221 models/core.py:459 models/core.py:544
++#: models/core.py:163
++#, fuzzy
++msgid "types"
++msgstr "type"
++
++#: models/core.py:177 models/core.py:228 models/core.py:466 models/core.py:551
  #: models/pro.py:45
  msgid "course"
  msgstr "matière"
  
- #: models/core.py:187 models/core.py:213
 -#: models/core.py:196 models/core.py:223
++#: models/core.py:203 models/core.py:230
  msgid "professor"
  msgstr "professeur"
  
- #: models/core.py:201 models/core.py:217
 -#: models/core.py:211 models/core.py:227
++#: models/core.py:218 models/core.py:234
  msgid "room"
  msgstr "salle"
  
- #: models/core.py:206
 -#: models/core.py:216
++#: models/core.py:223
  msgid "public_id"
  msgstr "public id"
  
- #: models/core.py:215
 -#: models/core.py:225
++#: models/core.py:232
  msgid "session"
  msgstr "session"
  
- #: models/core.py:219
 -#: models/core.py:229
++#: models/core.py:236
  msgid "comment"
  msgstr "commentaire"
  
- #: models/core.py:220
 -#: models/core.py:230
++#: models/core.py:237
  msgid "begin date"
  msgstr "date de début"
  
- #: models/core.py:221
 -#: models/core.py:231
++#: models/core.py:238
  msgid "end date"
  msgstr "date de fin"
  
- #: models/core.py:222 models/core.py:462 models/core.py:498 models/core.py:542
 -#: models/core.py:232 models/core.py:473 models/core.py:509 models/core.py:553
++#: models/core.py:239 models/core.py:480 models/core.py:516 models/core.py:560
  msgid "readers"
  msgstr ""
  
- #: models/core.py:335 models/core.py:363 models/core.py:451 models/core.py:531
 -#: models/core.py:349 models/core.py:377 models/core.py:462 models/core.py:542
++#: models/core.py:356 models/core.py:384 models/core.py:469 models/core.py:549
  msgid "conference"
  msgstr "conférence"
  
- #: models/core.py:343
 -#: models/core.py:357
++#: models/core.py:364
  msgid "host"
  msgstr ""
  
- #: models/core.py:344
 -#: models/core.py:358
++#: models/core.py:365
  msgid "port"
  msgstr ""
  
- #: models/core.py:345 models/core.py:455 models/core.py:541
 -#: models/core.py:359 models/core.py:466 models/core.py:552
++#: models/core.py:366 models/core.py:473 models/core.py:559
  msgid "type"
  msgstr "type"
  
- #: models/core.py:347
 -#: models/core.py:361
++#: models/core.py:368
  msgid "source password"
  msgstr ""
  
- #: models/core.py:348
 -#: models/core.py:362
++#: models/core.py:369
  msgid "admin password"
  msgstr ""
  
- #: models/core.py:355 models/core.py:366
 -#: models/core.py:369 models/core.py:380
++#: models/core.py:376 models/core.py:387
  msgid "streaming server"
  msgstr "serveur de diffusion"
  
- #: models/core.py:367
 -#: models/core.py:381
++#: models/core.py:388
  msgid "Streaming type"
  msgstr "Type de flux"
  
- #: models/core.py:369
 -#: models/core.py:383
++#: models/core.py:390
  msgid "streaming"
  msgstr "diffusion"
  
- #: models/core.py:405
 -#: models/core.py:416
++#: models/core.py:423
  msgid "live stream"
  msgstr "stream en direct"
  
- #: models/core.py:413
 -#: models/core.py:424
++#: models/core.py:431
  msgid "credits"
  msgstr "crédits"
  
- #: models/core.py:414 models/pro.py:67
 -#: models/core.py:425 models/pro.py:67
++#: models/core.py:432 models/pro.py:67
  msgid "date added"
  msgstr "date d'ajout"
  
- #: models/core.py:417
 -#: models/core.py:428
++#: models/core.py:435
  msgid "published"
  msgstr "publié"
  
- #: models/core.py:418
 -#: models/core.py:429
++#: models/core.py:436
  msgid "mime type"
  msgstr "Type mime"
  
- #: models/core.py:419 models/pro.py:86
 -#: models/core.py:430 models/pro.py:86
++#: models/core.py:437 models/pro.py:86
  msgid "weight"
  msgstr ""
  
- #: models/core.py:440
 -#: models/core.py:451
++#: models/core.py:458
  msgid "document type"
  msgstr "type de document"
  
- #: models/core.py:457 models/crfpa.py:111
 -#: models/core.py:468 models/crfpa.py:111
++#: models/core.py:475 models/crfpa.py:111
  msgid "iej"
  msgstr "iej"
  
- #: models/core.py:459
 -#: models/core.py:470
++#: models/core.py:477
  msgid "annal"
  msgstr "annale"
  
- #: models/core.py:460
 -#: models/core.py:471
++#: models/core.py:478
  msgid "year"
  msgstr "année"
  
- #: models/core.py:461 models/core.py:497
 -#: models/core.py:472 models/core.py:508
++#: models/core.py:479 models/core.py:515
  msgid "file"
  msgstr "fichier"
  
@@@ -475,7 -470,7 +479,7 @@@ msgid "Sorry, this page number is inval
  msgstr ""
  
  #: templates/postman/base_folder.html:31
- #: templates/teleforma/course_conference_record.html:51
 -#: templates/teleforma/course_conference_record.html:69
++#: templates/teleforma/course_conference_record.html:100
  #: templates/telemeta/lists.html:75
  msgid "Action"
  msgstr ""
@@@ -857,7 -832,17 +841,17 @@@ msgstr "Début
  msgid "End"
  msgstr "Fin"
  
- #: templates/teleforma/course_conference_record.html:52
 -#: templates/teleforma/course_conference_record.html:30
++#: templates/teleforma/course_conference_record.html:61
+ #: templates/teleforma/courses.html:107
+ msgid "Status"
+ msgstr "Status"
 -#: templates/teleforma/course_conference_record.html:41
++#: templates/teleforma/course_conference_record.html:72
+ #: templates/teleforma/courses.html:42
+ msgid "New conference"
+ msgstr "Nouvelle conférence"
 -#: templates/teleforma/course_conference_record.html:70
++#: templates/teleforma/course_conference_record.html:101
  msgid "Record and stream"
  msgstr "Enregistrer et diffuser"
  
@@@ -1177,17 -1165,30 +1174,30 @@@ msgstr "moi
  msgid "No"
  msgstr "Non"
  
- #: views/core.py:145
 -#: views/core.py:151
++#: views/core.py:147
  msgid "Access not allowed."
  msgstr "Accès non autorisé."
  
- #: views/core.py:146
 -#: views/core.py:152
++#: views/core.py:148
  msgid ""
  "Please login or contact the website administator to get a private access."
  msgstr ""
  "Merci de vous connecter ou bien contactez l'administateur du site pour "
  "obtenir un accès privé."
  
 -#: views/core.py:204
++#: views/core.py:200
+ msgid ""
+ "You do NOT have access to this resource and then have been redirected to "
+ "your desk."
+ msgstr ""
 -#: views/core.py:463
++#: views/core.py:459
+ msgid "A new live conference has started : "
+ msgstr "Une nouvelle conférence en direct a commencé : "
+ #~ msgid "Training"
+ #~ msgstr "Formation"
  #~ msgid "CRFPA student"
  #~ msgstr "Etudiant CRFPA"
  
index 18db6dcb3baaf316e98993511b058998f3766bde,999b3daf72bb8148cbbde2f4137de23265195daa..76bda8e77402772bd96134c7ebe70b42e56fd936
@@@ -7,42 -8,18 +8,49 @@@
  <script type="text/javascript">
  
  jQuery(window).ready(function(){
 +
      var a = jQuery('#action_red');
      var f = jQuery('#_StationForm');
 -    a.unbind('click').click(function(){f.submit();return false;});
 -    });
 +    a.unbind('click').click(function(){a.unbind('click'); f.submit(); return false;});
 +
 +    var update_courses = function(data){
 +        var courses = data.result;
 +        var options = '<option value="">----------</option>';
 +        for (var i = 0; i < courses.length; i++) {
 +          options += '<option value="' + parseInt(courses[i].id) + '">' + courses[i].name + '</option>';
 +        }
 +        $("#id_course").html(options);
 +        $("#id_course option:first").attr('selected', 'selected');
 +        $("#id_course").attr('disabled', false);
 +        }
 +
 +    var update_periods = function(data){
 +        var periods = data.result;
 +        var options = '<option value="">----------</option>';
 +        for (var i = 0; i < periods.length; i++) {
 +          options += '<option value="' + parseInt(periods[i].id) + '">' + periods[i].name + '</option>';
 +        }
 +        $("#id_period").html(options);
 +        $("#id_period option:first").attr('selected', 'selected');
 +        $("#id_period").attr('disabled', false);
 +        }
 +
 +    $('#id_department').change(function() {
 +        var dep_id = $('#id_department option:selected').val();
 +        json([dep_id],'teleforma.get_dep_courses', update_courses);
 +        json([dep_id],'teleforma.get_dep_periods', update_periods);
 +        });
 +
 +});
 +
  </script>
+ <script type="text/javascript">
+ $(document).ready(function(){
+     InitChatWindow("{% url jqchat_ajax room.id %}", null);
+     });
+ </script>
  {% endblock extra_javascript %}
  
  
index 90359c572b79cc765516cf35bb1b3fc856440064,e15a2f8c2a12b0af3e6f6cb5fe843ed722bd50e7..7a3f621301c063e0fadc9cf8b49ac7b6e010969d
@@@ -479,8 -453,21 +449,21 @@@ class ConferenceListView(View)
                  s.teleforma.create_conference(conference.to_json_dict())
  
  
+ def live_message(conference):
+         from jqchat.models import Message
+         user, c = User.objects.get_or_create(username='bot')
+         content_type = ContentType.objects.get(app_label="teleforma", model="course")
+         room = get_room(name=conference.course.code, period=conference.period.name,
+                            content_type=content_type,
+                            id=conference.course.id)
+         text = _("A new live conference has started : ")
+         text += 'http://' + Site.objects.all()[0].domain + reverse('teleforma-conference-detail',
+                        kwargs={'period_id': conference.period.id, 'pk': conference.id})
+         message = Message.objects.create_message(user, room, text)
  class ConferenceRecordView(FormView):
 -    "Conference record form : TeleCaster module required"
 +    "Conference record form : telecaster module required"
  
      model = Conference
      form_class = ConferenceForm
          context['mime_type'] = 'video/webm'
          status = Status()
          status.update()
 -        context['host'] = status.ip
 +
 +        request_host = get_host(self.request)
 +        local_host = status.ip
 +        if request_host.split('.')[0] == local_host.split('.')[0]:
 +            ip = local_host
 +        else:
 +            ip = settings.ROUTER_IP
 +
 +        context['host'] = ip
          context['hidden_fields'] = self.hidden_fields
+         context['room'] = get_room(name='monitor')
          return context
  
      def get_success_url(self):