Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
 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)
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
 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)
Exemplo n.º 8
0
    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
Exemplo n.º 9
0
    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
Exemplo n.º 10
0
    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()
Exemplo n.º 11
0
    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()
Exemplo n.º 12
0
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()