def template_edit(request, template_id, form_class=TemplateForm, template_name='campaign_monitor/templates/edit.html'): template = get_object_or_404(Template, template_id=template_id) if not has_perm(request.user,'campaign_monitor.change_template', template): raise Http403 if request.method == "POST": form = form_class(request.POST, request.FILES, instance=template) if form.is_valid(): #save template to generate urls template = form.save() #set up urls site_url = get_setting('site', 'global', 'siteurl') if hasattr(settings, 'USE_S3_STORAGE') and settings.USE_S3_STORAGE: html_url = template.html_file.url else: html_url = str("%s%s" % (site_url, template.get_html_url())) if template.zip_file: if hasattr(settings, 'USE_S3_STORAGE') and settings.USE_S3_STORAGE: zip_url = template.get_zip_url() else: zip_url = "%s%s" % (site_url, template.get_zip_url()) else: zip_url = "" #sync with campaign monitor try: t = CST(auth=auth, template_id = form.instance.template_id) t.update(str(template.name), html_url, zip_url) except BadRequest, e: msg_string = 'Bad Request %s: %s' % (e.data.Code, e.data.Message) messages.add_message(request, messages.ERROR, _(msg_string)) return render_to_response(template_name, {'form':form}, context_instance=RequestContext(request)) except Exception, e: msg_string = 'Error: %s' % e messages.add_message(request, messages.ERROR, _(msg_string)) return render_to_response(template_name, {'form':form}, context_instance=RequestContext(request)) #get campaign monitor details t = t.details() template.name = t.Name template.cm_preview_url = t.PreviewURL template.cm_screenshot_url = t.ScreenshotURL template.save() #extract and serve files in zip extract_files(template) msg_string = 'Successfully updated Template : %s' % template.template_id messages.add_message(request, messages.SUCCESS, _(msg_string)) return redirect(template)
def template_update(request, template_id): """ This method makes use of the same files to update the CM Template. Useful for updating data/content only and retaining design. """ template = get_object_or_404(Template, template_id=template_id) if not has_perm(request.user, 'campaign_monitor.change_template', template): raise Http403 #set up urls site_url = get_setting('site', 'global', 'siteurl') html_url = unicode("%s%s" % (site_url, template.get_html_url())) html_url += "?jump_links=1&articles=1&articles_days=60&news=1&news_days=60&jobs=1&jobs_days=60&pages=1&pages_days=7" try: from tendenci.apps.events.models import Event, Type html_url += "&events=1" html_url += "&events_type=" html_url += "&event_start_dt=%s" % datetime.date.today() end_dt = datetime.date.today() + timedelta(days=90) html_url += "&event_end_dt=%s" % end_dt except ImportError: pass if template.zip_file: if hasattr(settings, 'USE_S3_STORAGE') and settings.USE_S3_STORAGE: zip_url = unicode(template.get_zip_url()) else: zip_url = unicode("%s%s" % (site_url, template.get_zip_url())) else: zip_url = unicode() #sync with campaign monitor try: t = CST(auth=auth, template_id=template.template_id) t.update(unicode(template.name), html_url, zip_url) except BadRequest as e: msg_string = 'Bad Request %s: %s' % (e.data.Code, e.data.Message) messages.add_message(request, messages.ERROR, _(msg_string)) return redirect(template) except Exception as e: msg_string = 'Error: %s' % e messages.add_message(request, messages.ERROR, _(msg_string)) return redirect(template) #get campaign monitor details t = t.details() template.name = t.Name template.cm_preview_url = t.PreviewURL template.cm_screenshot_url = t.ScreenshotURL template.save() msg_string = 'Successfully updated Template : %s' % template.template_id messages.add_message(request, messages.SUCCESS, _(msg_string)) return redirect(template)
def template_update(request, template_id): """ This method makes use of the same files to update the CM Template. Useful for updating data/content only and retaining design. """ template = get_object_or_404(Template, template_id=template_id) if not has_perm(request.user,'campaign_monitor.change_template', template): raise Http403 #set up urls site_url = get_setting('site', 'global', 'siteurl') html_url = str("%s%s"%(site_url, template.get_html_url())) html_url += "?jump_links=1&articles=1&articles_days=60&news=1&news_days=60&jobs=1&jobs_days=60&pages=1&pages_days=7" try: html_url += "&events=1" html_url += "&events_type=" html_url += "&event_start_dt=%s" % datetime.date.today() end_dt = datetime.date.today() + timedelta(days=90) html_url += "&event_end_dt=%s" % end_dt except ImportError: pass if template.zip_file: if hasattr(settings, 'USE_S3_STORAGE') and settings.USE_S3_STORAGE: zip_url = str(template.get_zip_url()) else: zip_url = str("%s%s"%(site_url, template.get_zip_url())) else: zip_url = str() #sync with campaign monitor try: t = CST(auth=auth, template_id = template.template_id) t.update(str(template.name), html_url, zip_url) except BadRequest as e: msg_string = 'Bad Request %s: %s' % (e.data.Code, e.data.Message) messages.add_message(request, messages.ERROR, _(msg_string)) return redirect(template) except Exception as e: msg_string = 'Error: %s' % e messages.add_message(request, messages.ERROR, _(msg_string)) return redirect(template) #get campaign monitor details t = t.details() template.name = t.Name template.cm_preview_url = t.PreviewURL template.cm_screenshot_url = t.ScreenshotURL template.save() msg_string = 'Successfully updated Template : %s' % template.template_id messages.add_message(request, messages.SUCCESS, _(msg_string)) return redirect(template)
def template_edit(request, template_id, form_class=TemplateForm, template_name='campaign_monitor/templates/edit.html'): template = get_object_or_404(Template, template_id=template_id) if not has_perm(request.user, 'campaign_monitor.change_template', template): raise Http403 if request.method == "POST": form = form_class(request.POST, request.FILES, instance=template) if form.is_valid(): #save template to generate urls template = form.save() #set up urls site_url = get_setting('site', 'global', 'siteurl') if hasattr(settings, 'USE_S3_STORAGE') and settings.USE_S3_STORAGE: html_url = template.html_file.url else: html_url = str("%s%s" % (site_url, template.get_html_url())) if template.zip_file: if hasattr(settings, 'USE_S3_STORAGE') and settings.USE_S3_STORAGE: zip_url = template.get_zip_url() else: zip_url = "%s%s" % (site_url, template.get_zip_url()) else: zip_url = "" #sync with campaign monitor try: t = CST(auth=auth, template_id=form.instance.template_id) t.update(str(template.name), html_url, zip_url) except BadRequest, e: msg_string = 'Bad Request %s: %s' % (e.data.Code, e.data.Message) messages.add_message(request, messages.ERROR, _(msg_string)) return render_to_response( template_name, {'form': form}, context_instance=RequestContext(request)) except Exception, e: msg_string = 'Error: %s' % e messages.add_message(request, messages.ERROR, _(msg_string)) return render_to_response( template_name, {'form': form}, context_instance=RequestContext(request)) #get campaign monitor details t = t.details() template.name = t.Name template.cm_preview_url = t.PreviewURL template.cm_screenshot_url = t.ScreenshotURL template.save() #extract and serve files in zip extract_files(template) msg_string = 'Successfully updated Template : %s' % template.template_id messages.add_message(request, messages.SUCCESS, _(msg_string)) return redirect(template)