From: Yoan Le Clanche Date: Wed, 22 Dec 2021 17:00:45 +0000 (+0100) Subject: Migration to Django 3 in progress X-Git-Tag: 2.8.1-pro~140 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=e2f3b5f4b0f2caa1d3b334601207f74ef5c8a766;p=teleforma.git Migration to Django 3 in progress --- diff --git a/app/settings.py b/app/settings.py index 105fb5c7..11128011 100644 --- a/app/settings.py +++ b/app/settings.py @@ -163,7 +163,7 @@ ROOT_URLCONF = 'urls' INSTALLED_APPS = ( - + 'jazzmin', # 'south', 'django.contrib.auth', 'django.contrib.contenttypes', @@ -183,7 +183,6 @@ INSTALLED_APPS = ( "mezzanine.galleries", # "mezzanine.twitter", 'teleforma', - 'jazzmin', 'django.contrib.admin', 'jsonrpc', 'sorl.thumbnail', @@ -249,10 +248,10 @@ POSTMAN_DISALLOW_ANONYMOUS = True #FILE_PROTECTION_METHOD = 'xsendfile' -TELEFORMA_ORGANIZATION = 'Pré-Barreau - CRFPA' -TELEFORMA_SUBJECTS = ('Barreau', 'CRFPA', 'e-learning') -TELEFORMA_DESCRIPTION = "E-learning Pré-Barreau - CRFPA" -TELEFORMA_E_LEARNING_TYPE = 'CRFPA' +TELEFORMA_ORGANIZATION = 'Pro-Barreau' +TELEFORMA_SUBJECTS = ('Barreau', 'e-learning') +TELEFORMA_DESCRIPTION = "E-learning Pro-Barreau" +TELEFORMA_E_LEARNING_TYPE = 'Pro-Barreau' TELEFORMA_GLOBAL_TWEETER = False TELEFORMA_PERIOD_TWEETER = True TELEFORMA_EXAM_TOPIC_DEFAULT_DOC_TYPE_ID = 4 @@ -264,8 +263,10 @@ TELEFORMA_EXAM_SCRIPT_MAX_SIZE = 20480000 TELEFORMA_EXAM_SCRIPT_SERVICE_URL = '/webviewer/teleforma.html' EMAIL_HOST = 'angus.parisson.com' -DEFAULT_FROM_EMAIL = 'crfpa@pre-barreau.com' -SERVER_EMAIL = 'crfpa@pre-barreau.com' +DEFAULT_FROM_EMAIL = 'e-learning@pro-barreau.com' +SERVER_EMAIL = 'webmaster@parisson.com' +REPORT_TO_EMAIL = ('kostya.rilov@pre-barreau.com', 'alexia.dcruz@pro-barreau.com') +ADMIN_USERNAME = 'Pro-Barreau' EMAIL_SUBJECT_PREFIX = '[' + TELEFORMA_ORGANIZATION + '] ' TELECASTER_LIVE_STREAMING_PROTOCOL = 'https' @@ -387,12 +388,13 @@ def show_user_as(user): POSTMAN_SHOW_USER_AS = show_user_as -#THUMBNAIL_FORCE_OVERWRITE = True +# MEZZANINE GRAPPELLI_INSTALLED = False +COMMENTS_NUM_LATEST = 5 JAZZMIN_SETTINGS = { - "site_title": "CRFPA", - "site_header": "CRFPA", + "site_title": "Probarreau - E-learning", + "site_header": "Probarreau", "site_logo": "teleforma/images/logo_pb.png", # # Links to put along the top menu diff --git a/teleforma/migrations/0001_initial.py b/teleforma/migrations/0001_initial.py index a211e34b..4e769996 100644 --- a/teleforma/migrations/0001_initial.py +++ b/teleforma/migrations/0001_initial.py @@ -30,8 +30,6 @@ class Migration(migrations.Migration): ('_meta_title', models.CharField(blank=True, help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title')), ('description', models.TextField(blank=True, verbose_name='Description')), ('gen_description', models.BooleanField(default=True, help_text='If checked, the description will be automatically generated from content. Uncheck if you want to manually set a custom description.', verbose_name='Generate description')), - ('created', models.DateTimeField(editable=False, null=True)), - ('updated', models.DateTimeField(editable=False, null=True)), ('status', models.IntegerField(choices=[(1, 'Draft'), (2, 'Published')], default=2, help_text='With Draft chosen, will only be shown for admin users on the site.', verbose_name='Status')), ('publish_date', models.DateTimeField(blank=True, db_index=True, help_text="With Published chosen, won't be shown until this time", null=True, verbose_name='Published from')), ('expiry_date', models.DateTimeField(blank=True, help_text="With Published chosen, won't be shown after this time", null=True, verbose_name='Expires on')), @@ -241,8 +239,6 @@ class Migration(migrations.Migration): ('_meta_title', models.CharField(blank=True, help_text='Optional title to be used in the HTML title tag. If left blank, the main title field will be used.', max_length=500, null=True, verbose_name='Title')), ('description', models.TextField(blank=True, verbose_name='Description')), ('gen_description', models.BooleanField(default=True, help_text='If checked, the description will be automatically generated from content. Uncheck if you want to manually set a custom description.', verbose_name='Generate description')), - ('created', models.DateTimeField(editable=False, null=True)), - ('updated', models.DateTimeField(editable=False, null=True)), ('status', models.IntegerField(choices=[(1, 'Draft'), (2, 'Published')], default=2, help_text='With Draft chosen, will only be shown for admin users on the site.', verbose_name='Status')), ('publish_date', models.DateTimeField(blank=True, db_index=True, help_text="With Published chosen, won't be shown until this time", null=True, verbose_name='Published from')), ('expiry_date', models.DateTimeField(blank=True, help_text="With Published chosen, won't be shown after this time", null=True, verbose_name='Expires on')), diff --git a/teleforma/migrations/0002_auto_20211222_1725.py b/teleforma/migrations/0002_auto_20211222_1725.py new file mode 100644 index 00000000..d44e16ea --- /dev/null +++ b/teleforma/migrations/0002_auto_20211222_1725.py @@ -0,0 +1,33 @@ +# Generated by Django 3.2.3 on 2021-12-22 17:25 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('teleforma', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='conference', + name='created', + field=models.DateTimeField(editable=False, null=True), + ), + migrations.AddField( + model_name='conference', + name='updated', + field=models.DateTimeField(editable=False, null=True), + ), + migrations.AddField( + model_name='seminar', + name='created', + field=models.DateTimeField(editable=False, null=True), + ), + migrations.AddField( + model_name='seminar', + name='updated', + field=models.DateTimeField(editable=False, null=True), + ), + ] diff --git a/teleforma/models/ae.py b/teleforma/models/ae.py index eb97b879..df993a92 100644 --- a/teleforma/models/ae.py +++ b/teleforma/models/ae.py @@ -50,7 +50,7 @@ class AEStudent(Model): verbose_name=_('courses'), blank=True) - def __unicode__(self): + def __str__(self): try: return self.user.last_name + ' ' + self.user.first_name except: diff --git a/teleforma/models/core.py b/teleforma/models/core.py index 5ef858af..a84ade4c 100755 --- a/teleforma/models/core.py +++ b/teleforma/models/core.py @@ -133,7 +133,7 @@ class Organization(Model): name = CharField(_('name'), max_length=255) description = CharField(_('description'), max_length=255, blank=True) - def __unicode__(self): + def __str__(self): return self.name class Meta(MetaCore): @@ -151,7 +151,7 @@ class Department(Model): signature = models.ImageField(_('Signature image'), upload_to='images/%Y/%m/%d', blank=True, null=True, max_length=1024) - def __unicode__(self): + def __str__(self): return self.name @property @@ -186,7 +186,7 @@ class Location(Model): verbose_name_plural = _('locations') ordering = ['name'] - def __unicode__(self): + def __str__(self): return self.name @@ -195,7 +195,7 @@ class LocationType(Model): code = models.CharField(_('identifier'), max_length=64, unique=True) name = models.CharField(_('name'), max_length=150) - def __unicode__(self): + def __str__(self): return self.name class Meta(MetaCore): @@ -209,7 +209,7 @@ class Period(Model): name = CharField(_('name'), max_length=255) description = CharField(_('description'), max_length=255, blank=True) - def __unicode__(self): + def __str__(self): return self.name class Meta(MetaCore): @@ -221,7 +221,7 @@ class CourseType(Model): name = CharField(_('name'), max_length=255) description = CharField(_('description'), max_length=255, blank=True) - def __unicode__(self): + def __str__(self): return self.name class Meta(MetaCore): @@ -249,7 +249,7 @@ class Course(Model): notes = GenericRelation(Note) - def __unicode__(self): + def __str__(self): return self.title @property @@ -291,7 +291,7 @@ class CourseDomain(Model): verbose_name=_('courses'), blank=True) - def __unicode__(self): + def __str__(self): return self.name class Meta(MetaCore): @@ -313,7 +313,7 @@ class Professor(Model): blank=True) - def __unicode__(self): + def __str__(self): if self.user.first_name or self.user.last_name: return self.user.last_name + ' ' + self.user.first_name else: @@ -339,7 +339,7 @@ class Room(Model): name = CharField(_('name'), max_length=255) description = CharField(_('description'), max_length=255, blank=True) - def __unicode__(self): + def __str__(self): return self.organization.name + ' - ' + self.name class Meta(MetaCore): @@ -359,7 +359,7 @@ class StreamingServer(Model): source_password = CharField(_('source password'), max_length=32) admin_password = CharField(_('admin password'), max_length=32, blank=True) - def __unicode__(self): + def __str__(self): return self.host + ':' + self.port + ' - ' + self.type class Meta(MetaCore): @@ -407,7 +407,7 @@ class LiveStream(Model): url = 'https://' + self.server.host + ':' + str(self.server.port) + '/' + self.mount_point return url - def __unicode__(self): + def __str__(self): if self.conference: return self.conference.title else: @@ -445,7 +445,7 @@ class DocumentType(Model): description = CharField(_('description'), max_length=255, blank=True) number = IntegerField(_('number'), blank=True, null=True) - def __unicode__(self): + def __str__(self): return self.name class Meta(MetaCore): @@ -487,7 +487,7 @@ class Document(MediaBase): def set_mime_type(self): self.mime_type = mimetypes.guess_type(self.file.path)[0] - def __unicode__(self): + def __str__(self): return self.full_title @cached_property @@ -547,7 +547,7 @@ class MediaTranscoded(Model): else: return self.mimetype - def __unicode__(self): + def __str__(self): if self.item.title: return self.item.title + ' - ' + self.mime_type else: @@ -588,7 +588,7 @@ class Media(MediaBase): else: self.mime_type = mime_type - def __unicode__(self): + def __str__(self): return self.full_title @cached_property @@ -901,7 +901,7 @@ class Conference(Displayable, WebclassMixin, ProductCodeMixin, SuggestionsMixin) def get_absolute_url(self): return reverse('conference-view', kwargs={"pk": self.id}) - def __unicode__(self): + def __str__(self): if self.professor: list = [self.title, self.course.title, self.session, @@ -995,15 +995,14 @@ class NamePaginator(object): # chunk up the objects so we don't need to iterate over the whole list for each letter chunks = {} - for obj in self.object_list: if on: - obj_str = getattr(obj, on).encode('utf8') + obj_str = getattr(obj, on) else: - obj_str = obj.encode('utf8') + obj_str = obj if len(obj_str): - letter = str.upper(obj_str[0]) + letter = str.upper(str(obj_str[0])) else: letter = '' diff --git a/teleforma/models/crfpa.py b/teleforma/models/crfpa.py index 994e6212..30aba090 100644 --- a/teleforma/models/crfpa.py +++ b/teleforma/models/crfpa.py @@ -46,7 +46,7 @@ class IEJ(Model): name = CharField(_('name'), max_length=255) description = CharField(_('description'), max_length=255, blank=True) - def __unicode__(self): + def __str__(self): return self.name class Meta(MetaCore): @@ -91,7 +91,7 @@ class Training(Model): blank=True) cost = FloatField(_('cost'), blank=True, null=True) - def __unicode__(self): + def __str__(self): code = self.code if self.period: code += ' - ' + self.period.name @@ -127,7 +127,7 @@ class Student(Model): options = ForeignKey('Course', related_name="options", verbose_name=_('options'), blank=True, null=True, on_delete=models.SET_NULL) - def __unicode__(self): + def __str__(self): try: return self.user.last_name + ' ' + self.user.first_name except: diff --git a/teleforma/models/pro.py b/teleforma/models/pro.py index 27db37ea..0f9c618b 100644 --- a/teleforma/models/pro.py +++ b/teleforma/models/pro.py @@ -47,7 +47,7 @@ class SeminarType(models.Model): name = models.CharField(_('name'), max_length=255, blank=True) - def __unicode__(self): + def __str__(self): return self.name class Meta(MetaCore): @@ -133,7 +133,7 @@ class Seminar(ClonableMixin, Displayable, ProductCodeMixin, SuggestionsMixin): search_fields = {'description': 1, 'sub_title':2, 'index':1} - def __unicode__(self): + def __str__(self): if self.publish_date: return ' - '.join([str(self.publish_date.year), self.course.title, str(self.rank), self.title]) else: @@ -243,7 +243,7 @@ class Question(ClonableMixin, models.Model): min_nchar = models.IntegerField(_('minimum numbers of characters')) status = models.IntegerField(_('status'), choices=STATUS_CHOICES, default=3) - def __unicode__(self): + def __str__(self): return ' - '.join([str(self.seminar), self.title, str(self.rank)]) class Meta(MetaCore): @@ -264,7 +264,7 @@ class Answer(models.Model): date_validated = models.DateTimeField(_('date validated'), null=True) date_added = models.DateTimeField(_('date added'), auto_now_add=True, null=True) - def __unicode__(self): + def __str__(self): return ' - '.join([str(self.question), self.user.username, str(self.date_submitted)]) def validate(self): @@ -294,7 +294,7 @@ class TestimonialTemplate(models.Model): document = models.ForeignKey(Document, related_name="testimonial_template", verbose_name=_('template'), on_delete=models.CASCADE) - def __unicode__(self): + def __str__(self): return ' - '.join([self.organization.name, self.description]) class Meta(MetaCore): @@ -336,7 +336,7 @@ class Testimonial(models.Model): self.title = self.get_title() super(Testimonial, self).save(**kwargs) - def __unicode__(self): + def __str__(self): if self.title: return self.title else: @@ -375,7 +375,7 @@ class Auditor(models.Model): expiration_date = models.DateField(_('Expiration_date'), blank=True, null=True) init_password = models.BooleanField(_('Password initialized')) - def __unicode__(self): + def __str__(self): try: return self.user.last_name + ' ' + self.user.first_name except: @@ -403,7 +403,7 @@ class SeminarRevision(models.Model): date = models.DateTimeField(_('date added'), auto_now_add=True, null=True) date_modified = models.DateTimeField(_('date modified'), blank=True, null=True) - def __unicode__(self): + def __str__(self): return ' - '.join([self.seminar.title, self.user.username, str(self.date), str(self.date_modified)]) class Meta(MetaCore): @@ -427,7 +427,7 @@ class QuizValidation(models.Model): validated = models.BooleanField(_('validated')) date_validated = models.DateTimeField(_('date validated'), auto_now_add=True, null=True) - def __unicode__(self): + def __str__(self): return ' - '.join([str(self.quiz), self.user.username, str(self.date_validated)]) def validate(self): diff --git a/teleforma/templates/postman/base.html b/teleforma/templates/postman/base.html index 284cacdd..44b8a18a 100644 --- a/teleforma/templates/postman/base.html +++ b/teleforma/templates/postman/base.html @@ -23,16 +23,16 @@
{% postman_unread as unread_count %}
-{% trans "New message" %} +{% trans "New message" %}
diff --git a/teleforma/templates/postman/base_folder.html b/teleforma/templates/postman/base_folder.html index ec5c6921..7426226b 100644 --- a/teleforma/templates/postman/base_folder.html +++ b/teleforma/templates/postman/base_folder.html @@ -47,13 +47,13 @@ - {% block pm_sender_cell %}{% if message.is_new %}{% endif %}{{ message.obfuscated_sender|or_me:user }}{% if message.count %} ({{ message.count }}){% endif %}{% if message.is_new %}{% endif %}{% endblock %} + {% block pm_sender_cell %}{% if message.is_new %}{% endif %}{{ message.obfuscated_sender|or_me:user }}{% if message.count %} ({{ message.count }}){% endif %}{% if message.is_new %}{% endif %}{% endblock %} - {% block pm_recipient_cell %}{{ message.obfuscated_recipient|or_me:user }}{% if message.count %} ({{ message.count }}){% endif %}{% endblock %} + {% block pm_recipient_cell %}{{ message.obfuscated_recipient|or_me:user }}{% if message.count %} ({{ message.count }}){% endif %}{% endblock %} {% if message.is_new %}{% endif %}{% if message.is_replied %}{% endif %} {% block pm_subject %} - + {% include "postman/inc_subject_ex.html" %} {% endblock %} {% if message.is_replied %}{% endif %}{% if message.is_new %}{% endif %} @@ -66,13 +66,13 @@
{% block pm_form_buttons %} {% block pm_delete_button %} -{% trans "Delete" %} +{% trans "Delete" %} {% endblock %} {% block pm_archive_button %} -{% trans "Archive" %} +{% trans "Archive" %} {% endblock %} {% block pm_undelete_button %} -{% trans "Undelete" %} +{% trans "Undelete" %} {% endblock %} {% endblock %} diff --git a/teleforma/templates/postman/view.html b/teleforma/templates/postman/view.html index e77a4c1f..418af0e5 100644 --- a/teleforma/templates/postman/view.html +++ b/teleforma/templates/postman/view.html @@ -36,22 +36,22 @@ {% trans "Back" %} {% block pm_delete_button %} -{% trans "Delete" %} +{% trans "Delete" %} {% endblock %} {% block pm_archive_button %} {% if not archived %} -{% trans "Archive" %} +{% trans "Archive" %} {% endif %} {% endblock %} -{% if reply_to_pk %}{% trans "Reply" %}{% endif %} +{% if reply_to_pk %}{% trans "Reply" %}{% endif %}

{% if reply_to_pk %}

{% trans 'Reply' %}

-
{% csrf_token %} +{% csrf_token %}
{{ form.body }}

{% trans "Reply" %} {% endif %} diff --git a/teleforma/templates/teleforma/answers.html b/teleforma/templates/teleforma/answers.html index b4724b9e..9851d442 100644 --- a/teleforma/templates/teleforma/answers.html +++ b/teleforma/templates/teleforma/answers.html @@ -35,7 +35,7 @@ var answerUtils = { {% block modules %}
-

playlists{% trans "Answers" %}

+

playlists{% trans "Answers" %}

diff --git a/teleforma/views/crfpa.py b/teleforma/views/crfpa.py index 44ff20bb..78ac0a07 100644 --- a/teleforma/views/crfpa.py +++ b/teleforma/views/crfpa.py @@ -117,7 +117,7 @@ class UsersView(ListView): #paginate_by = 12 def get_queryset(self): - return User.objects.all().select_related(depth=1).order_by('last_name') + return User.objects.all().select_related().order_by('last_name') def get_context_data(self, **kwargs): context = super(UsersView, self).get_context_data(**kwargs) diff --git a/teleforma/views/pages.py b/teleforma/views/pages.py index a3609a99..dc8aec7b 100644 --- a/teleforma/views/pages.py +++ b/teleforma/views/pages.py @@ -17,7 +17,7 @@ class PageTextContent(object): yield line.rstrip('\r\n') file.close() - def __unicode__(self): + def __str__(self): file = open(self.filename, 'r') data = file.read() file.close()