Exemple #1
0
 def get_module_info(self, name):
     info = {}
     try:
         info = addons.load_information_from_description_file(name)
         if 'version' in info:
             info['version'] = release.major_version + '.' + info['version']
     except:
         pass
     return info
Exemple #2
0
 def get_module_info(self, name):
     info = {}
     try:
         info = addons.load_information_from_description_file(name)
         if 'version' in info:
             info['version'] = release.major_version + '.' + info['version']
     except:
         pass
     return info
Exemple #3
0
 def get_module_info(cls, name):
     info = {}
     try:
         info = addons.load_information_from_description_file(name)
         if 'version' in info:
             info['version'] = release.major_version + '.' + info['version']
     except Exception:
         cls.__logger.debug('Error when trying to fetch informations for '
                             'module %s', name, exc_info=True)
     return info
 def get_module_info(cls, name):
     info = {}
     try:
         info = addons.load_information_from_description_file(name)
         if 'version' in info:
             info['version'] = release.major_version + '.' + info['version']
     except Exception:
         cls.__logger.debug('Error when trying to fetch informations for '
                             'module %s', name, exc_info=True)
     return info
Exemple #5
0
 def build_test_list_from_modules(self, module_list):
     assert isinstance(module_list, list), 'Module list should be a list'
     module_test_files = {}
     for module_name in module_list:
         if major_version == '6.1':
             from modules.module import load_information_from_description_file
             info = load_information_from_description_file(module_name)
         else:
             info = addons.load_information_from_description_file(module_name)
         module_test_files[module_name] = info.get('test', [])
     return module_test_files
Exemple #6
0
 def build_test_list_from_modules(self, module_list):
     assert isinstance(module_list, list), 'Module list should be a list'
     module_test_files = {}
     for module_name in module_list:
         if major_version == '6.1':
             from modules.module import load_information_from_description_file
             info = load_information_from_description_file(module_name)
         else:
             info = addons.load_information_from_description_file(
                 module_name)
         module_test_files[module_name] = info.get('test', [])
     return module_test_files
        oo_parser.localcontext['progress_update'] = deferred and deferred.progress_update or (lambda:True)
        ####### Add counter functons to localcontext #######
        oo_parser.localcontext.update({'def_inc':self._def_inc(aeroo_print),
                                      'get_inc':self._get_inc(aeroo_print),
                                      'prev':self._prev(aeroo_print),
                                      'next':self._next(aeroo_print)})

        user_name = pool.get('res.users').browse(cr, uid, uid, {}).name
        model_id = pool.get('ir.model').search(cr, uid, [('model','=',context.get('active_model', data['model']) or data['model'])])[0]
        model_name = pool.get('ir.model').browse(cr, uid, model_id).name

        #basic = Template(source=None, filepath=odt_path)

        basic.Serializer.add_title(model_name)
        basic.Serializer.add_creation_user(user_name)
        module_info = load_information_from_description_file('report_aeroo')
        version = module_info['version']
        basic.Serializer.add_generator_info('Aeroo Lib/%s Aeroo Reports/%s' % (aeroolib.__version__, version))
        basic.Serializer.add_custom_property('Aeroo Reports %s' % version, 'Generator')
        basic.Serializer.add_custom_property('OpenERP %s' % release.version, 'Software')
        basic.Serializer.add_custom_property(module_info['website'], 'URL')
        basic.Serializer.add_creation_date(time.strftime('%Y-%m-%dT%H:%M:%S'))

        try:
            data = basic.generate(**oo_parser.localcontext).render().getvalue()
        except osv.except_osv, e:
            raise
        except Exception, e:
            self._raise_exception(e, print_id)

        ######### OpenOffice extras #########
Exemple #8
0
            'get_inc': self._get_inc(aeroo_print),
            'prev': self._prev(aeroo_print),
            'next': self._next(aeroo_print)
        })

        user_name = pool.get('res.users').browse(cr, uid, uid, {}).name
        model_id = pool.get('ir.model').search(
            cr, uid, [('model', '=', context.get('active_model', data['model'])
                       or data['model'])])[0]
        model_name = pool.get('ir.model').browse(cr, uid, model_id).name

        #basic = Template(source=None, filepath=odt_path)

        basic.Serializer.add_title(model_name)
        basic.Serializer.add_creation_user(user_name)
        module_info = load_information_from_description_file('report_aeroo')
        version = module_info['version']
        basic.Serializer.add_generator_info('Aeroo Lib/%s Aeroo Reports/%s' %
                                            (aeroolib.__version__, version))
        basic.Serializer.add_custom_property('Aeroo Reports %s' % version,
                                             'Generator')
        basic.Serializer.add_custom_property('OpenERP %s' % release.version,
                                             'Software')
        basic.Serializer.add_custom_property(module_info['website'], 'URL')
        basic.Serializer.add_creation_date(time.strftime('%Y-%m-%dT%H:%M:%S'))

        # stream filter function for translation
        def _translate_stream(stream):
            for kind, data, pos in stream:
                result = (kind, data, pos)
                if kind == 'TEXT' and len(data) > 3:
Exemple #9
0
    def create_aeroo_report(self, cr, uid, ids, data, report_xml, context=None, output='odt'):
        """ Returns an aeroo report generated with aeroolib
        """
        pool = pooler.get_pool(cr.dbname)
        if not context:
            context={}
        context = context.copy()
        if self.name=='report.printscreen.list':
            context['model'] = data['model']
            context['ids'] = ids
        
        objects = not context.get('no_objects', False) and self.getObjects_mod(cr, uid, ids, report_xml.report_type, context) or []
        oo_parser = self.parser(cr, uid, self.name2, context=context)

        oo_parser.objects = objects
        self.set_xml_data_fields(objects, oo_parser) # Get/Set XML

        oo_parser.localcontext['objects'] = objects
        oo_parser.localcontext['data'] = data
        oo_parser.localcontext['user_lang'] = context.get('lang', False)
        if len(objects)==1:
            oo_parser.localcontext['o'] = objects[0]
        xfunc = ExtraFunctions(cr, uid, report_xml.id, oo_parser.localcontext)
        oo_parser.localcontext.update(xfunc.functions)

        company_id = objects and 'company_id' in objects[0]._table._columns.keys() and \
                                objects[0].company_id and objects[0].company_id.id or False # for object company usage
        style_io=self.get_styles_file(cr, uid, report_xml, company=company_id, context=context)

        if report_xml.tml_source in ('file', 'database'):
            file_data = base64.decodestring(report_xml.report_sxw_content)
        else:
            file_data = self.get_other_template(cr, uid, data, oo_parser)
        if not file_data and not report_xml.report_sxw_content:
            return False, output
        #elif file_data:
        #    template_io = StringIO()
        #    template_io.write(file_data or report_xml.report_sxw_content)
        #    basic = Template(source=template_io, styles=style_io)
        else:
            if report_xml.preload_mode == 'preload' and hasattr(self, 'serializer'):
                serializer = copy.copy(self.serializer)
                serializer.apply_style(style_io)
                template_io = serializer.template
            else:
                template_io = StringIO()
                template_io.write(file_data or base64.decodestring(report_xml.report_sxw_content) )
                serializer = OOSerializer(template_io, oo_styles=style_io)
            basic = Template(source=template_io, serializer=serializer)

        #if not file_data:
        #    return False, output

        #basic = Template(source=template_io, serializer=serializer)

        aeroo_ooo = context.get('aeroo_ooo', False)
        oo_parser.localcontext['include_subreport'] = self._subreport(cr, uid, output='odt', aeroo_ooo=aeroo_ooo, context=context)
        oo_parser.localcontext['include_document'] = self._include_document(aeroo_ooo)

        ####### Add counter functons to localcontext #######
        oo_parser.localcontext.update({'def_inc':self._def_inc,
                                      'get_inc':self._get_inc,
                                      'prev':self._prev,
                                      'next':self._next})

        user_name = pool.get('res.users').browse(cr, uid, uid, {}).name
        model_id = pool.get('ir.model').search(cr, uid, [('model','=',context['active_model'])])[0]
        model_name = pool.get('ir.model').browse(cr, uid, model_id).name

        #basic = Template(source=None, filepath=odt_path)

        basic.Serializer.add_title(model_name)
        basic.Serializer.add_creation_user(user_name)
        module_info = load_information_from_description_file('report_aeroo')
        version = module_info['version']
        basic.Serializer.add_generator_info('Aeroo Lib/%s Aeroo Reports/%s' % (aeroolib.__version__, version))
        basic.Serializer.add_custom_property('Aeroo Reports %s' % version, 'Generator')
        basic.Serializer.add_custom_property('OpenERP %s' % release.version, 'Software')
        basic.Serializer.add_custom_property(module_info['website'], 'URL')
        basic.Serializer.add_creation_date(time.strftime('%Y-%m-%dT%H:%M:%S'))

        try:
            data = basic.generate(**oo_parser.localcontext).render().getvalue()
        except Exception, e:
            tb_s = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback))
            self.logger(_("Report generation error!")+'\n'+tb_s, netsvc.LOG_ERROR)
            for sub_report in self.oo_subreports:
                os.unlink(sub_report)
            raise Exception(_("Aeroo Reports: Error while generating the report."), e, str(e), _("For more reference inspect error logs."))
Exemple #10
0
def init_db(cr):
    import addons
    f = addons.get_module_resource('base', 'base.sql')
    for line in file_open(f).read().split(';'):
        if (len(line)>0) and (not line.isspace()):
            cr.execute(line)
    cr.commit()

    for i in addons.get_modules():
        mod_path = addons.get_module_path(i)
        if not mod_path:
            continue

        info = addons.load_information_from_description_file(i)

        if not info:
            continue
        categs = info.get('category', 'Uncategorized').split('/')
        p_id = None
        while categs:
            if p_id is not None:
                cr.execute('select id \
                           from ir_module_category \
                           where name=%s and parent_id=%s', (categs[0], p_id))
            else:
                cr.execute('select id \
                           from ir_module_category \
                           where name=%s and parent_id is NULL', (categs[0],))
            c_id = cr.fetchone()
            if not c_id:
                cr.execute('select nextval(\'ir_module_category_id_seq\')')
                c_id = cr.fetchone()[0]
                cr.execute('insert into ir_module_category \
                        (id, name, parent_id) \
                        values (%s, %s, %s)', (c_id, categs[0], p_id))
            else:
                c_id = c_id[0]
            p_id = c_id
            categs = categs[1:]

        active = info.get('active', False)
        installable = info.get('installable', True)
        if installable:
            if active:
                state = 'to install'
            else:
                state = 'uninstalled'
        else:
            state = 'uninstallable'
        cr.execute('select nextval(\'ir_module_module_id_seq\')')
        id = cr.fetchone()[0]
        cr.execute('insert into ir_module_module \
                (id, author, website, name, shortdesc, description, \
                    category_id, state, certificate) \
                values (%s, %s, %s, %s, %s, %s, %s, %s, %s)', (
            id, info.get('author', ''),
            info.get('website', ''), i, info.get('name', False),
            info.get('description', ''), p_id, state, info.get('certificate') or None))
        cr.execute('insert into ir_model_data \
            (name,model,module, res_id, noupdate) values (%s,%s,%s,%s,%s)', (
                'module_meta_information', 'ir.module.module', i, id, True))
        dependencies = info.get('depends', [])
        for d in dependencies:
            cr.execute('insert into ir_module_module_dependency \
                    (module_id,name) values (%s, %s)', (id, d))
        cr.commit()