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
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
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
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
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 #########
'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:
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."))
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()