def _create_custom_template(self, org_id=None, mode=None, course_key=None): """ Creates a custom certificate template entry in DB. """ template_html = """ <%namespace name='static' file='static_content.html'/> <html> <body> lang: ${LANGUAGE_CODE} course name: ${accomplishment_copy_course_name} mode: ${course_mode} ${accomplishment_copy_course_description} ${twitter_url} <img class="custom-logo" src="${static.certificate_asset_url('custom-logo')}" /> </body> </html> """ template = CertificateTemplate( name='custom template', template=template_html, organization_id=org_id, course_key=course_key, mode=mode, is_active=True ) template.save()
def _create_custom_template(self, org_id=None, mode=None, course_key=None): """ Creates a custom certificate template entry in DB. """ template_html = """ <html> <body> lang: ${LANGUAGE_CODE} course name: ${accomplishment_copy_course_name} mode: ${course_mode} ${accomplishment_copy_course_description} </body> </html> """ template = CertificateTemplate( name='custom template', template=template_html, organization_id=org_id, course_key=course_key, mode=mode, is_active=True ) template.save()
def _create_custom_template(self, org_id=None, mode=None, course_key=None): """ Creates a custom certificate template entry in DB. """ template_html = """ <%namespace name='static' file='static_content.html'/> <html> <body> lang: ${LANGUAGE_CODE} course name: ${accomplishment_copy_course_name} mode: ${course_mode} ${accomplishment_copy_course_description} ${twitter_url} <img class="custom-logo" src="${static.certificate_asset_url('custom-logo')}" /> </body> </html> """ template = CertificateTemplate(name='custom template', template=template_html, organization_id=org_id, course_key=course_key, mode=mode, is_active=True) template.save()
def _create_custom_template(self, org_id=None, mode=None, course_key=None): """ Creates a custom certificate template entry in DB. """ template_html = """ <html> <body> lang: ${LANGUAGE_CODE} course name: ${accomplishment_copy_course_name} mode: ${course_mode} ${accomplishment_copy_course_description} ${twitter_url} </body> </html> """ template = CertificateTemplate( name='custom template', template=template_html, organization_id=org_id, course_key=course_key, mode=mode, is_active=True ) template.save()
def update_image(request, pk): if not utils.can_approve_certificates(request.user): raise PermissionDenied certificate_request = get_object_or_404(CertificateRequest, pk=pk) instance = certificate_request.get_template() if 'image' in request.FILES: template_bytes = request.FILES['image'].read() else: template_bytes = instance.image.read() if instance: existing_positions = instance.text_positions.all() else: existing_positions = TextPosition.objects.none() position_formset = PositionFormset(request.POST, instance=instance) if position_formset.is_valid(): # Formsets only return changed objects. changed_positions = position_formset.save(commit=False) previous_pks = [ position.pk for position in changed_positions if position.pk ] existing_positions = existing_positions.exclude(pk__in=previous_pks) positions = changed_positions + list(existing_positions) else: raise Exception(u"خطأ في تحديد مواضع النصوص") example_text = request.POST.get('example_text', TEXT_PLACE_HOLDER) image_format = request.POST.get('image_format', 'PNG') template = CertificateTemplate(image_format=image_format) texts = [example_text] * len(positions) file_path, img_url = utils.generate_certificate_image( certificate_request.pk, template=template, template_bytes=template_bytes, positions=positions, texts=texts) return {'img_url': img_url}
def approve_request(request, pk): if not utils.can_approve_certificates(request.user): raise PermissionDenied certificate_request = get_object_or_404(CertificateRequest, pk=pk) context = {'certificate_request': certificate_request} instance = certificate_request.get_template() if instance: texts = [TEXT_PLACE_HOLDER] * instance.text_positions.count() file_path, relative_url = utils.generate_certificate_image( pk, template=instance, texts=texts) context['tmp_image'] = relative_url else: instance = CertificateTemplate(certificate_request=certificate_request) if request.method == 'POST': template_form = CertificateTemplateForm(request.POST, request.FILES, instance=instance) formset = PositionFormset(request.POST, instance=instance) if template_form.is_valid() and formset.is_valid(): template = template_form.save() formset.instance = template formset.save() return HttpResponseRedirect( reverse('certificates:approve_certificate_request', args=(pk, ))) elif request.method == 'GET': template_form = CertificateTemplateForm(instance=instance) formset = PositionFormset(instance=instance) context['template_form'] = template_form context['formset'] = formset return render(request, 'certificates/approve_request.html', context)