def get_body_template_filename(self): tplname = self.get_body_template() if not tplname: return None mc = self.excerpt_type.content_type.model_class() tplgroup = mc.get_template_group() return rt.find_config_file(tplname, tplgroup)
def get_template_leaf(self, action, elem): tpls = action.get_print_templates(self, elem) if len(tpls) != 1: raise Exception( "%s.get_print_templates() must return " "exactly 1 template (got %r)" % ( elem.__class__.__name__, tpls)) tpl_leaf = tpls[0] if not tpl_leaf.endswith(self.template_ext): raise Warning( "Invalid template '%s' configured for %s '%s' " "(expected filename ending with '%s')." % (tpl_leaf, elem.__class__.__name__, str(elem), self.template_ext)) lang = elem.get_print_language() \ or settings.SITE.DEFAULT_LANGUAGE.django_code if lang != settings.SITE.DEFAULT_LANGUAGE.django_code: name = tpl_leaf[:-len(self.template_ext)] + \ "_" + lang + self.template_ext if rt.find_config_file( name, *elem.get_template_groups()): return name return tpl_leaf
def get_mailable_intro(self, ar): mt = self.get_mailable_type() #~ print 20130101, mt.email_template name = mt.email_template if not name: return '' for group in self.get_template_groups(): filename = rt.find_config_file(name, group) if filename: context = self.get_printable_context(ar) return settings.SITE.plugins.jinja.render_jinja( ar, group + "/" + name, context)
def get_mailable_intro(self, ar): mt = self.get_mailable_type() # ~ print 20130101, mt.email_template name = mt.email_template if not name: return "" for group in self.get_template_groups(): filename = rt.find_config_file(name, group) if filename: env = settings.SITE.plugins.jinja.renderer.jinja_env tpl = env.get_template(group + "/" + name) context = self.get_printable_context(ar) return ar.render_jinja(tpl, **context)
def generate(self, tplname, fn, **context): from lino.api import rt from Cheetah.Template import Template as CheetahTemplate #~ if self.tmpl_dir: #~ tplname = join(self.tmpl_dir,tplname) #~ tplname = self.subcommand + '/' + tplname tpl_filename = rt.find_config_file(tplname, self.tmpl_dir) if tpl_filename is None: raise Exception("No file %s found" % tplname) if isinstance(tpl_filename, str): tpl_filename = tpl_filename.encode(sys.getfilesystemencoding()) tpl_filename = os.path.abspath(tpl_filename) fn = join(self.output_dir, fn) #~ if os.path.exists(fn): #~ if not self.options.get('overwrite'): #~ if not confirm("Overwrite existing file %s (y/n) ?" % fn): #~ logger.info("Skipping %s because file exists.",fn) #~ return #~ else: #~ mkdir_if(os.path.dirname(fn)) settings.SITE.makedirs_if_missing(os.path.dirname(fn)) logger.info("Generating %s", fn) #~ logger.info("Generating %s from %s",fn,tpl_filename) def app_labels(): return [p.app_label for p in settings.SITE.installed_plugins] context.update( lino=lino, #~ models=models, settings=settings, app_labels=app_labels) #~ d = dict(site=site) #~ print 20110223, [m for m in models.get_models()] #~ print 20110315, context tpl = CheetahTemplate(file=tpl_filename, namespaces=[context]) #~ tpl = CheetahTemplate(file(tpl_filename).read(),namespaces=[context]) s = str(tpl) #~ print s file(fn, 'w').write(s.encode('utf-8')) self.generated_count += 1
def generate(self, tplname, fn, **context): from lino.api import rt from Cheetah.Template import Template as CheetahTemplate #~ if self.tmpl_dir: #~ tplname = join(self.tmpl_dir,tplname) #~ tplname = self.subcommand + '/' + tplname tpl_filename = rt.find_config_file(tplname, self.tmpl_dir) if tpl_filename is None: raise Exception("No file %s found" % tplname) if isinstance(tpl_filename, unicode): tpl_filename = tpl_filename.encode(sys.getfilesystemencoding()) tpl_filename = os.path.abspath(tpl_filename) fn = join(self.output_dir, fn) #~ if os.path.exists(fn): #~ if not self.options.get('overwrite'): #~ if not confirm("Overwrite existing file %s (y/n) ?" % fn): #~ logger.info("Skipping %s because file exists.",fn) #~ return #~ else: #~ mkdir_if(os.path.dirname(fn)) settings.SITE.makedirs_if_missing(os.path.dirname(fn)) logger.info("Generating %s", fn) #~ logger.info("Generating %s from %s",fn,tpl_filename) def app_labels(): return [p.app_label for p in settings.SITE.installed_plugins] context.update( lino=lino, #~ models=models, settings=settings, app_labels=app_labels) #~ d = dict(site=site) #~ print 20110223, [m for m in models.get_models()] #~ print 20110315, context tpl = CheetahTemplate(file=tpl_filename, namespaces=[context]) #~ tpl = CheetahTemplate(file(tpl_filename).read(),namespaces=[context]) s = unicode(tpl) #~ print s file(fn, 'w').write(s.encode('utf-8')) self.generated_count += 1
def appy_render(self, ar, target_file): if ar.get_total_count() > self.MAX_ROW_COUNT: raise Exception(_("List contains more than %d rows") % self.MAX_ROW_COUNT) tplfile = rt.find_config_file(self.template_name, '') if not tplfile: raise Exception("No file %s" % self.template_name) # 20150810 ar.renderer = settings.SITE.kernel.html_renderer # 20120624 context = self.get_context(ar) if os.path.exists(target_file): os.remove(target_file) logger.debug(u"appy.pod render %s -> %s (params=%s", tplfile, target_file, settings.SITE.appy_params) renderer = AppyRenderer( ar, tplfile, context, target_file, **settings.SITE.appy_params) renderer.run()
def appy_render(self, ar, target_file): # if ar.get_total_count() > self.MAX_ROW_COUNT: # raise Exception(_("List contains more than %d rows") % # self.MAX_ROW_COUNT) tplfile = rt.find_config_file(self.template_name, '') if not tplfile: raise Exception("No file %s" % self.template_name) # 20150810 ar.renderer = settings.SITE.kernel.html_renderer # 20120624 context = self.get_context(ar) if os.path.exists(target_file): os.remove(target_file) dd.logger.debug(u"appy.pod render %s -> %s (params=%s", tplfile, target_file, settings.SITE.appy_params) renderer = AppyRenderer(ar, tplfile, context, target_file, **settings.SITE.appy_params) renderer.run()
def objects(): city = Instantiator('countries.Place', country='EE').build input_file = rt.find_config_file('sihtnumbrid.csv') settings.SITE.logger.info("Importing Estonian places from %s", input_file) f = codecs.open(input_file, 'r', 'latin-1', 'replace') #~ f = codecs.open(input_file,'r','utf-8','replace') f.readline() r = unicode_csv_reader(f, delimiter=';') #~ r = UnicodeReader(f,delimiter=';') # r.next() maakonnad = dict() mk_names_dict = dict() #~ vallad = dict() #~ laakid = dict() #~ names = set() for ln in r: # print repr(ln) if len(ln) > 2: mk = maakonnad.get(ln[0]) if mk is None: mk = city(name=ln[0], type=PlaceTypes.county) yield mk #~ print "20120822 maakond", mk, mk.pk maakonnad[ln[0]] = mk mk_names_dict[ln[0]] = dict() names = mk_names_dict[ln[0]] if ln[1]: vald = names.get(ln[1]) if vald is None: #~ ct = CITY_TYPES[ln[4]] vald = city(name=ln[1], type=PlaceTypes.municipality, parent=mk, zip_code=ln[7]) yield vald #~ if ct != PlaceTypes.municipality: #~ print "20120822", vald, "expected municipality, found", ct #~ else: #~ print "20120822 vald", vald, vald.pk names[ln[1]] = vald else: vald.zip_code = '' vald.save() else: vald = None laak = names.get(ln[2]) if laak is None: #~ ct = CITY_TYPES.get(ln[4]) ct = CITY_TYPES[ln[4]] if ct is None: #~ print "20120822 ignored addressiliik", ln[4] continue elif vald is None: laak = city(name=ln[2], type=ct, parent=mk, zip_code=ln[7]) else: laak = city(name=ln[2], type=ct, parent=vald, zip_code=ln[7]) yield laak #~ print "20120822", laak.type, laak, laak.pk names[ln[2]] = laak #~ else: #~ print "20120822 pole vald ega Tallinn:", ln #~ names.add(ln[2]) else: laak.zip_code = '' laak.save() f.close()