Commit d6940154 authored by Matheus Miranda's avatar Matheus Miranda
Browse files

Merge branch 'develop' into 'master'

Add support for i18n for slug and emails

See merge request !60
parents d332f984 247c7fea
...@@ -72,6 +72,6 @@ class ClassSerializer(WorkspaceBaseSerializerMixin, serializers.ModelSerializer) ...@@ -72,6 +72,6 @@ class ClassSerializer(WorkspaceBaseSerializerMixin, serializers.ModelSerializer)
return updated_class return updated_class
def get_students_serializer(self, obj): def get_students_serializer(self, obj):
serializer_context = { 'course_id': obj.id } serializer_context = { 'course_id': obj.course.id }
serializer = ClassSimpleUserSerializer(obj.valid_students, many=True, read_only=True, context=serializer_context) serializer = ClassSimpleUserSerializer(obj.valid_students, many=True, read_only=True, context=serializer_context)
return serializer.data return serializer.data
...@@ -798,24 +798,24 @@ class ProfessorMessage(models.Model): ...@@ -798,24 +798,24 @@ class ProfessorMessage(models.Model):
except EmailTemplate.DoesNotExist: except EmailTemplate.DoesNotExist:
et = EmailTemplate(name="professor-message", subject="{{subject}}", template="{{message|safe}}") et = EmailTemplate(name="professor-message", subject="{{subject}}", template="{{message|safe}}")
if settings.MULTILINGUAL_EMAIL_SEND: if settings.I18N_SUPPORT:
bcc_en = [u.email for u in self.users.all() if u.is_active and re.match(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", u.email) and u.preferred_language == 'en'] bcc_en = [u.email for u in self.users.all() if u.is_active and re.match(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", u.email) and u.preferred_language == 'en']
bcc_es = [u.email for u in self.users.all() if u.is_active and re.match(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", u.email) and u.preferred_language == 'es'] bcc_es = [u.email for u in self.users.all() if u.is_active and re.match(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", u.email) and u.preferred_language == 'es']
bcc_pt_br = [u.email for u in self.users.all() if u.is_active and re.match(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", u.email) and u.preferred_language == 'pt-br'] bcc_pt_br = [u.email for u in self.users.all() if u.is_active and re.match(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", u.email) and u.preferred_language == 'pt-br']
subject_en = Template(et.subject).render(Context({'subject': self.subject_en})) subject_en = Template(et.subject).render(Context({'subject': self.subject_en}))
message_en = Template(et.template).render(Context({'message': self.message_en})) message_en = Template(et.template).render(Context({'message': self.message_en}))
if subject_en and message_en: if self.subject_en and self.message_en:
self.send_emails(bcc_en, message_en, subject_en, email_batch_size) self.send_emails(bcc_en, message_en, subject_en, email_batch_size)
subject_es = Template(et.subject).render(Context({'subject': self.subject_es})) subject_es = Template(et.subject).render(Context({'subject': self.subject_es}))
message_es = Template(et.template).render(Context({'message': self.message_es})) message_es = Template(et.template).render(Context({'message': self.message_es}))
if subject_es and message_es: if self.subject_es and self.message_es:
self.send_emails(bcc_es, message_es, subject_es, email_batch_size) self.send_emails(bcc_es, message_es, subject_es, email_batch_size)
subject_pt_br = Template(et.subject).render(Context({'subject': self.subject_pt_br})) subject_pt_br = Template(et.subject).render(Context({'subject': self.subject_pt_br}))
message_pt_br = Template(et.template).render(Context({'message': self.message_pt_br})) message_pt_br = Template(et.template).render(Context({'message': self.message_pt_br}))
if subject_pt_br and message_pt_br: if self.subject_pt_br and self.message_pt_br:
self.send_emails(bcc_pt_br, message_pt_br, subject_pt_br, email_batch_size) self.send_emails(bcc_pt_br, message_pt_br, subject_pt_br, email_batch_size)
else: else:
bcc = [u.email for u in self.users.all() if u.is_active and re.match(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", u.email)] bcc = [u.email for u in self.users.all() if u.is_active and re.match(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", u.email)]
......
...@@ -86,6 +86,18 @@ class CourseViewSet(viewsets.ModelViewSet): ...@@ -86,6 +86,18 @@ class CourseViewSet(viewsets.ModelViewSet):
def post(self, request, **kwargs): def post(self, request, **kwargs):
course = self.get_object() course = self.get_object()
from django.conf import settings
if settings.I18N_SUPPORT:
update_slug = request.data.get('slug', '')
if not course.slug_en:
course.slug_en = update_slug
if not course.slug_es:
course.slug_es = update_slug
if not course.slug_pt_br:
course.slug_pt_br = update_slug
serializer = CourseSerializer(course, request.data) serializer = CourseSerializer(course, request.data)
if serializer.is_valid(): if serializer.is_valid():
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment