update Repo für 10.0
							parent
							
								
									5db603678a
								
							
						
					
					
						commit
						ea7df087a0
					
				|  | @ -1,15 +0,0 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <launchConfiguration type="org.python.pydev.debug.regularLaunchConfigurationType"> | ||||
| <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> | ||||
| <listEntry value="/INSTANCE/setup/lib/cli.py"/> | ||||
| </listAttribute> | ||||
| <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> | ||||
| <listEntry value="1"/> | ||||
| </listAttribute> | ||||
| <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:INSTANCE/setup/lib/cli.py}"/> | ||||
| <stringAttribute key="org.eclipse.ui.externaltools.ATTR_OTHER_WORKING_DIRECTORY" value=""/> | ||||
| <stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="${env_var:CAM_USER} update cam_custom"/> | ||||
| <stringAttribute key="org.python.pydev.debug.ATTR_INTERPRETER" value="__default"/> | ||||
| <stringAttribute key="org.python.pydev.debug.ATTR_PROJECT" value="INSTANCE"/> | ||||
| <stringAttribute key="process_factory_id" value="org.python.pydev.debug.processfactory.PyProcessFactory"/> | ||||
| </launchConfiguration> | ||||
|  | @ -1,15 +0,0 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <launchConfiguration type="org.python.pydev.debug.regularLaunchConfigurationType"> | ||||
| <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS"> | ||||
| <listEntry value="/INSTANCE/ext/odoo/odoo-dev.py"/> | ||||
| </listAttribute> | ||||
| <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES"> | ||||
| <listEntry value="1"/> | ||||
| </listAttribute> | ||||
| <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:INSTANCE/ext/odoo/odoo-dev.py}"/> | ||||
| <stringAttribute key="org.eclipse.ui.externaltools.ATTR_OTHER_WORKING_DIRECTORY" value=""/> | ||||
| <stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-c dev/odoo-server-dev-${env_var:CAM_USER}.conf --db-filter="^INSTANCE.*""/> | ||||
| <stringAttribute key="org.python.pydev.debug.ATTR_INTERPRETER" value="__default"/> | ||||
| <stringAttribute key="org.python.pydev.debug.ATTR_PROJECT" value="INSTANCE"/> | ||||
| <stringAttribute key="process_factory_id" value="org.python.pydev.debug.processfactory.PyProcessFactory"/> | ||||
| </launchConfiguration> | ||||
|  | @ -1,15 +0,0 @@ | |||
| [options] | ||||
| 
 | ||||
| xmlrpc_port = 8080 | ||||
| ; This is the password that allows database operations: | ||||
| ; admin_passwd = admin | ||||
| db_host = False | ||||
| db_port = 5432 | ||||
| db_user = False | ||||
| db_password = False | ||||
| 
 | ||||
| addons_path = ext/odoo/addons,ext/custom-addons,dmi/run1 | ||||
| timezone = Europe/Brussels | ||||
| 
 | ||||
| #dbfilter_test = ['.*',] | ||||
| show_debug = 1 | ||||
|  | @ -1,15 +0,0 @@ | |||
| [options] | ||||
| 
 | ||||
| xmlrpc_port = 8080 | ||||
| ; This is the password that allows database operations: | ||||
| ; admin_passwd = admin | ||||
| db_host = False | ||||
| db_port = 5432 | ||||
| db_user = False | ||||
| db_password = False | ||||
| 
 | ||||
| addons_path = ext/odoo/addons,ext/custom-addons,dmi/run1 | ||||
| timezone = Europe/Brussels | ||||
| 
 | ||||
| #dbfilter_test = ['.*',] | ||||
| show_debug = 1 | ||||
| Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB | 
|  | @ -1,13 +0,0 @@ | |||
| --- ext/odoo/odoo-dev.py	2015-04-08 10:11:02.000000000 +0200
 | ||||
| +++ ext/odoo/odoo-dev.py	2015-04-08 10:11:02.000000000 +0200
 | ||||
| @@ -0,0 +1,10 @@
 | ||||
| +#!/usr/bin/env python
 | ||||
| +import sys
 | ||||
| +if sys.modules.get("gevent") is not None:
 | ||||
| +    del sys.modules['gevent']
 | ||||
| +import openerp
 | ||||
| +
 | ||||
| +if __name__ == "__main__":
 | ||||
| +    openerp.cli.main()
 | ||||
| +
 | ||||
| +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 | ||||
|  | @ -1,11 +0,0 @@ | |||
| --- ext/odoo/openerp/report/report_sxw.py	2015-04-15 12:18:30.132784074 +0200
 | ||||
| +++ ext/odoo/openerp/report/report_sxw.py	2015-04-15 11:48:21.743518606 +0200
 | ||||
| @@ -476,6 +476,8 @@
 | ||||
|          processed_rml = etree.XML(rml) | ||||
|          if report_xml.use_global_header: | ||||
|              rml_parser._add_header(processed_rml, self.header) | ||||
| +        else:
 | ||||
| +            rml_parser._add_header(processed_rml, 'internal')
 | ||||
|          processed_rml = self.preprocess_rml(processed_rml,report_xml.report_type) | ||||
|          if rml_parser.logo: | ||||
|              logo = base64.decodestring(rml_parser.logo) | ||||
|  | @ -1,11 +0,0 @@ | |||
| --- ext/odoo/openerp/report/render/rml2pdf/trml2pdf.py	2014-01-14 14:18:12.302306370 +0100
 | ||||
| +++ ext/odoo/openerp/report/render/rml2pdf/trml2pdf.py	2014-01-14 14:18:16.770419846 +0100
 | ||||
| @@ -740,7 +740,7 @@
 | ||||
|              rowheights = [utils.unit_get(f.strip()) for f in node.get('rowHeights').split(',')] | ||||
|              if len(rowheights) == 1: | ||||
|                  rowheights = rowheights[0] | ||||
| -        table = platypus.LongTable(data = data, colWidths=colwidths, rowHeights=rowheights, **(utils.attr_get(node, ['splitByRow'] ,{'repeatRows':'int','repeatCols':'int'})))
 | ||||
| +        table = platypus.LongTable(data = data, colWidths=colwidths, rowHeights=rowheights, **(utils.attr_get(node, ['splitByRow'] ,{'repeatRows':'int','repeatCols':'int', 'hAlign':'str'})))
 | ||||
|          if node.get('style'): | ||||
|              table.setStyle(self.styles.table_styles[node.get('style')]) | ||||
|          for s in styles: | ||||
|  | @ -5,18 +5,18 @@ import urlparse | |||
| 
 | ||||
| from config_at import Config | ||||
| from environments import ENVIRONMENTS, Environment | ||||
| from functions import CamadeusFunctions | ||||
| from functions import DatenpolFunctions | ||||
| 
 | ||||
| def main(): | ||||
|     def _usage(): | ||||
|         print '\nVerwendung: cam.py <environment> <command> [<module_name>/<setup_function>]\n' | ||||
|         print '\nVerwendung: dp.py <environment> <command> [<module_name>/<setup_function>]\n' | ||||
|         print 'Commands:\n' | ||||
|         print '   create                     Neue Datenbank erstellen' | ||||
|         print '   create_from_dump           Neue Datenbank von Dump erstellen' | ||||
|         print '   setup                      Modulinstallation, Konfigurationen' | ||||
|         print '   setup_part setup_function  Aufruf eines einzelnen Setup-Schrittes' | ||||
|         print '                              "setup_part info" listet die verfügbaren Setup-Schritte auf' | ||||
|         print '   rollout                    Setzt Dokumentnummern, importiert Benutzer, setzt cam_dmi auf noupdate, ...' | ||||
|         print '   rollout                    Setzt Dokumentnummern, importiert Benutzer, setzt dp_dmi auf noupdate, ...' | ||||
|         print '   update module_name         Modul updaten' | ||||
|         print '   install module_name        Modul installieren' | ||||
|         print '   uninstall module_name      Modul deinstallieren' | ||||
|  | @ -35,7 +35,7 @@ def main(): | |||
|         _usage() | ||||
| 
 | ||||
|     # RUNBOT | ||||
|     # ./cam runbot create [db] [port] [working-dir] | ||||
|     # ./dp runbot create [db] [port] [working-dir] | ||||
| 
 | ||||
|     if argv[0] == 'runbot': | ||||
|         import os | ||||
|  | @ -67,7 +67,7 @@ def main(): | |||
|             print 'Unbekannte Umgebung' | ||||
|             _usage() | ||||
| 
 | ||||
|     instance = CamadeusFunctions(env, config) | ||||
|     instance = DatenpolFunctions(env, config) | ||||
| 
 | ||||
|     methods = None | ||||
| 
 | ||||
|  | @ -81,8 +81,8 @@ def main(): | |||
|             'create_db', | ||||
|             'login', | ||||
|             'install_module_sale', | ||||
|             'setup_accounting', | ||||
|             'setup_accounting2', | ||||
|             #'setup_accounting', | ||||
|             #'setup_accounting2', | ||||
|             'set_admin_rights', | ||||
|         ] | ||||
| 
 | ||||
|  | @ -101,32 +101,32 @@ def main(): | |||
|         'uninstall_chat', | ||||
|         'install_modules', | ||||
|         'set_warehouse', | ||||
|         'base_config', | ||||
|         'sale_config', | ||||
|         #'base_config', | ||||
|         #'sale_config', | ||||
|         #'finance_config', | ||||
|         'hr_config', | ||||
|         'stock_config', | ||||
|         'mrp_config', | ||||
|         'stock_set_cost_method', | ||||
|         'set_incoterms', | ||||
|         'purchase_config', | ||||
|         #'hr_config', | ||||
|         #'stock_config', | ||||
|         #'mrp_config', | ||||
|         #'stock_set_cost_method', | ||||
|         #'set_incoterms', | ||||
|         #'purchase_config', | ||||
|         'set_date_format', | ||||
|         'set_company', | ||||
|         'set_taxes', | ||||
|         'set_uom', | ||||
|         'set_steuerzuordnung', | ||||
|         'setup_journals', | ||||
|         #'setup_journals', | ||||
|         'set_currencies', | ||||
|         'set_decimal_price', | ||||
|         'set_default_values', | ||||
|         'set_translations', | ||||
|         'set_default_removal_strategy', | ||||
|         'default_set_order_policy', | ||||
|         'delete_mail_server', | ||||
|         'update_values', | ||||
|         'update_special_values', | ||||
|         #'set_default_values', | ||||
|         #'set_translations', | ||||
|         #'set_default_removal_strategy', | ||||
|         #'default_set_order_policy', | ||||
|         #'delete_mail_server', | ||||
|         #'update_values', | ||||
|         #'update_special_values', | ||||
|         'set_sys_params', | ||||
|         'setup_reports', | ||||
|         #'setup_reports', | ||||
|         ] | ||||
| 
 | ||||
|     if cmd == 'setup': | ||||
|  | @ -135,10 +135,10 @@ def main(): | |||
|     if cmd == 'rollout': | ||||
|         methods = [ | ||||
|             'login', | ||||
|             'set_dokumentennummern', | ||||
|             'set_dmi_noupdate', | ||||
|             'dmi_confirm_inventory', | ||||
|             'import_users', | ||||
|             #'set_dokumentennummern', | ||||
|             #'set_dmi_noupdate', | ||||
|             #'dmi_confirm_inventory', | ||||
|             #'import_users', | ||||
|         ] | ||||
| 
 | ||||
|     if cmd == 'update': | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| 
 | ||||
| class Config(): | ||||
|     def __init__(self): | ||||
|         self.dump_file = 'upgraded_file_name.dump' | ||||
|         self.dump_file = 'odoo_backup.dump' | ||||
| 
 | ||||
|         self.module_name = None | ||||
|         self.lang = 'de_DE' # de_DE, en_US | ||||
|  | @ -14,23 +14,23 @@ class Config(): | |||
|         self.uom_decimals = 3 # Nachkommastellen Mengeneinheiten | ||||
| 
 | ||||
|         self.company_data = { | ||||
|             'name': 'Camadeus GmbH', | ||||
|             'street': 'Wiedner Hauptstraße 135/B3', | ||||
|             'name': 'datenpol gmbh', | ||||
|             'street': 'Lederergasse 32', | ||||
|             'street2': False, | ||||
|             'city': 'Wien', | ||||
|             'zip': '1050', | ||||
|             'phone': '+43 1 78910 96 70', | ||||
|             'city': 'Linz', | ||||
|             'zip': '4020', | ||||
|             'phone': '+43 732 997 035-0', | ||||
|             'fax': False, | ||||
|             'email': 'office@camadeus.at', | ||||
|             'website': 'http://www.camadeus.at/', | ||||
|             'company_registry': '280076b', | ||||
|             'email': 'office@datenpol.at', | ||||
|             'website': 'http://www.datenpol.at/', | ||||
|             'company_registry': '359270p', | ||||
|             'country_id': 'at', # 'de' für Deutschland | ||||
|             'logo': False, | ||||
|             'vat': 'ATU 62991855', | ||||
|             'vat': 'ATU 66309611', | ||||
|             'rml_header1': False, | ||||
|             'vat_check_vies': True, | ||||
|             'tax_calculation_rounding_method': 'round_globally', | ||||
|             'logo': '../ext/custom-addons/cam_custom/static/src/img/logo.png', | ||||
|             'logo': '../ext/custom-addons/dp_custom/static/src/img/logo.png', | ||||
|         } | ||||
| 
 | ||||
|         self.mail_server = { | ||||
|  | @ -241,8 +241,8 @@ class Config(): | |||
|                                   ] | ||||
| 
 | ||||
|         self.default_values = [   # ir.values | ||||
|             #('product.template', 'type', 'service'), | ||||
|             #('product.template', 'type', 'XML:xmlid'),    #mit prefix "XML:" kann eine XML ID übergeben werden | ||||
|             ('product.template', 'type', 'service'), | ||||
|             ('product.template', 'type', 'XML:xmlid'),    #mit prefix "XML:" kann eine XML ID übergeben werden | ||||
|         ] | ||||
| 
 | ||||
|         self.data_updates = { | ||||
|  |  | |||
|  | @ -26,11 +26,8 @@ Port:     %s | |||
| ENVIRONMENTS = { | ||||
|     # Local environments are listed with passwords | ||||
|     'br': Environment('http://localhost', '8080', 'INSTANCE_1', 'admin', 'x', 'admin'), | ||||
|     'sk': Environment('http://localhost', '8080', 'INSTANCE_1', 'admin', 'x', 'admin'), | ||||
|     'ha': Environment('http://localhost', '8080', 'INSTANCE_1', 'admin', 'x', 'admin'), | ||||
|     'jb': Environment('http://localhost', '8080', 'INSTANCE_1', 'admin', 'x', 'admin'), | ||||
|     'uk': Environment('http://localhost', '8080', 'INSTANCE_1', 'admin', 'x', 'admin'), | ||||
| 
 | ||||
|     # Remote environments are always listed without passwords! | ||||
|     # Do not store them here, you have to type them anyway! | ||||
|     'test': Environment('https://INSTANCE.camadeus.at', '443', 'INSTANCE_1', 'admin'), | ||||
|     'test': Environment('https://INSTANCE.datenpol.at', '443', 'INSTANCE_1', 'admin'), | ||||
| } | ||||
|  |  | |||
|  | @ -8,7 +8,8 @@ import xmlrpclib | |||
| 
 | ||||
| import requests | ||||
| 
 | ||||
| class CamadeusFunctions(): | ||||
| 
 | ||||
| class DatenpolFunctions(): | ||||
|     def __init__(self, environment, config): | ||||
|         self.env = environment | ||||
|         self.config = config | ||||
|  | @ -16,23 +17,22 @@ class CamadeusFunctions(): | |||
|     def create_db(self): | ||||
|         """Neue Datenbank erstellen""" | ||||
| 
 | ||||
|         payload = {'fields': [  {'name': 'super_admin_pwd', 'value': self.env.super_admin_pw}, | ||||
|                                 {'name': 'db_name', 'value': self.env.dbname}, | ||||
|                                 {'name': 'demo_data', 'value': False}, | ||||
|                                 {'name': 'db_lang', 'value': self.config.lang}, | ||||
|                                 {'name': 'create_admin_pwd', 'value': self.env.pwd}, | ||||
|                             ] | ||||
|                   } | ||||
|         payload = {'params': payload} | ||||
|         json_data = json.dumps(payload) | ||||
|         headers = {'content-type': 'application/json'} | ||||
|         r = requests.post('%s:%s/web/database/create' % (self.env.host, self.env.port), data=json_data, headers=headers, auth=self.env.basic_auth, verify=False) | ||||
|         if r and r.json().get('result', False): | ||||
|             return True | ||||
|         else: | ||||
|             msg = pprint.pformat(r.json().get('error', '????')) | ||||
|             print 'Error occured: %s' % msg | ||||
|         params = { | ||||
|             'master_pwd': self.env.super_admin_pw, | ||||
|             'name': self.env.dbname, | ||||
|             'login': self.env.username, | ||||
|             'password': self.env.pwd, | ||||
|             'lang': self.config.lang, | ||||
|             'country_code': self.config.company_data.get('country_id', 'at'), | ||||
|         } | ||||
|         if self.env.demo: | ||||
|             params.update(demo=1) | ||||
| 
 | ||||
|         base_url = '%s:%s/web/database/create' % (self.env.host, self.env.port) | ||||
|         res = requests.post(base_url, params=params, verify=False, stream=True) | ||||
|         if not res.ok: | ||||
|             return False | ||||
|         return True | ||||
| 
 | ||||
|     def create_dump(self): | ||||
|         """ Erstelle Odoo-Dump""" | ||||
|  | @ -69,12 +69,11 @@ class CamadeusFunctions(): | |||
|         print "\nACHTUNG: Nicht vergessen './cam [env] anonym' auszuführen, sodass es zu keiner Kommunikation mit dem Produktivsystem kommt" | ||||
|         return True | ||||
| 
 | ||||
| 
 | ||||
|     def login(self): | ||||
|         """Login""" | ||||
| 
 | ||||
|         # Get the uid | ||||
|         sock_common = xmlrpclib.ServerProxy ('%s:%s/xmlrpc/common' % (self.env.host, self.env.port)) | ||||
|         sock_common = xmlrpclib.ServerProxy('%s:%s/xmlrpc/common' % (self.env.host, self.env.port)) | ||||
|         self.uid = sock_common.login(self.env.dbname, self.env.username, self.env.pwd) | ||||
|         if not self.uid: | ||||
|             raise Exception('Authentication Error') | ||||
|  | @ -84,12 +83,12 @@ class CamadeusFunctions(): | |||
|     def _execute(self, *args): | ||||
|         return self.sock.execute(self.env.dbname, self.uid, self.env.pwd, *args) | ||||
| 
 | ||||
|     def _readAndReturnFile(self, filename, encode =''): | ||||
|         fi = open (filename, 'r') | ||||
|     def _readAndReturnFile(self, filename, encode=''): | ||||
|         fi = open(filename, 'r') | ||||
|         content = '' | ||||
|         if encode=='': | ||||
|         if encode == '': | ||||
|             content = fi.read() | ||||
|         elif encode=='base64': | ||||
|         elif encode == 'base64': | ||||
|             content = base64.b64encode(fi.read()) | ||||
|         else: | ||||
|             sys.exit(-1) | ||||
|  | @ -100,7 +99,7 @@ class CamadeusFunctions(): | |||
|         """Setze Unternehmensdaten (Allgemein, RML, Logo)""" | ||||
| 
 | ||||
|         vals = self.config.company_data | ||||
|         dummy,country_id = self._execute('ir.model.data', 'get_object_reference', 'base', vals['country_id']) | ||||
|         dummy, country_id = self._execute('ir.model.data', 'get_object_reference', 'base', vals['country_id']) | ||||
| 
 | ||||
|         if vals.get('logo', False): | ||||
|             vals['logo'] = self._readAndReturnFile(vals['logo'], encode='base64') | ||||
|  | @ -195,8 +194,9 @@ class CamadeusFunctions(): | |||
|         if hasattr(self.config, 'incoterms'): | ||||
|             terms = self.config.incoterms | ||||
| 
 | ||||
|             for name,code in terms: | ||||
|                 existing_ids = self._execute('stock.incoterms', 'search', ['|', ('active', '=', True), ('active', '=', False), ('code', '=', code)]) | ||||
|             for name, code in terms: | ||||
|                 existing_ids = self._execute('stock.incoterms', 'search', | ||||
|                                              ['|', ('active', '=', True), ('active', '=', False), ('code', '=', code)]) | ||||
|                 if existing_ids: | ||||
|                     vals = { | ||||
|                         'active': True, | ||||
|  | @ -210,7 +210,7 @@ class CamadeusFunctions(): | |||
|                     } | ||||
|                     self._execute('stock.incoterms', 'create', vals) | ||||
| 
 | ||||
|             codes = [code for name,code in terms] | ||||
|             codes = [code for name, code in terms] | ||||
|             inactive_ids = self._execute('stock.incoterms', 'search', [('code', 'not in', codes)]) | ||||
|             self._execute('stock.incoterms', 'write', inactive_ids, {'active': False}) | ||||
| 
 | ||||
|  | @ -227,7 +227,8 @@ class CamadeusFunctions(): | |||
|     def install_module_sale(self): | ||||
|         """Modul 'Sale' installieren""" | ||||
| 
 | ||||
|         modules_to_install = self._execute('ir.module.module', 'search', [('name', '=', 'sale'), ('state', '!=', 'installed')]) | ||||
|         modules_to_install = self._execute('ir.module.module', 'search', | ||||
|                                            [('name', '=', 'sale'), ('state', '!=', 'installed')]) | ||||
|         self._execute('ir.module.module', 'button_install', modules_to_install) | ||||
|         self._execute('base.module.upgrade', 'upgrade_module', modules_to_install) | ||||
|         return True | ||||
|  | @ -235,7 +236,8 @@ class CamadeusFunctions(): | |||
|     def install_modules(self): | ||||
|         """Module installieren""" | ||||
| 
 | ||||
|         modules_to_install = self._execute('ir.module.module', 'search', [('name', 'in', self.config.modules), ('state', '!=', 'installed')]) | ||||
|         modules_to_install = self._execute('ir.module.module', 'search', | ||||
|                                            [('name', 'in', self.config.modules), ('state', '!=', 'installed')]) | ||||
|         self._execute('ir.module.module', 'button_install', modules_to_install) | ||||
|         self._execute('base.module.upgrade', 'upgrade_module', modules_to_install) | ||||
|         return True | ||||
|  | @ -261,15 +263,15 @@ class CamadeusFunctions(): | |||
|         seq_dict = self.config.sequences | ||||
| 
 | ||||
|         # Lieferschein | ||||
|         if seq_dict.get('picking.out',False): | ||||
|         if seq_dict.get('picking.out', False): | ||||
|             self._set_picking_sequence_prefix('outgoing', 'picking.out') | ||||
|         if seq_dict.get('picking.in',False): | ||||
|         if seq_dict.get('picking.in', False): | ||||
|             self._set_picking_sequence_prefix('incoming', 'picking.in') | ||||
|         if seq_dict.get('picking.int',False): | ||||
|         if seq_dict.get('picking.int', False): | ||||
|             self._set_picking_sequence_prefix('internal', 'picking.int') | ||||
| 
 | ||||
|         # Angebot | ||||
|         if seq_dict.get('sale.order',False): | ||||
|         if seq_dict.get('sale.order', False): | ||||
|             s_ids = self._execute('ir.sequence', 'search', [('code', '=', 'sale.order')]) | ||||
|             if len(s_ids) != 1: | ||||
|                 return False | ||||
|  | @ -277,7 +279,7 @@ class CamadeusFunctions(): | |||
|                 return False | ||||
| 
 | ||||
|         # Arbeitsschein | ||||
|         if seq_dict.get('work.order',False): | ||||
|         if seq_dict.get('work.order', False): | ||||
|             s_ids = self._execute('ir.sequence', 'search', [('code', '=', 'work.order')]) | ||||
|             if len(s_ids) != 1: | ||||
|                 return False | ||||
|  | @ -285,7 +287,7 @@ class CamadeusFunctions(): | |||
|                 return False | ||||
| 
 | ||||
|         # EK-Angebot | ||||
|         if seq_dict.get('purchase.order',False): | ||||
|         if seq_dict.get('purchase.order', False): | ||||
|             s_ids = self._execute('ir.sequence', 'search', [('code', '=', 'purchase.order')]) | ||||
|             if len(s_ids) != 1: | ||||
|                 return False | ||||
|  | @ -293,7 +295,7 @@ class CamadeusFunctions(): | |||
|                 return False | ||||
| 
 | ||||
|         # Rechnungsnummer | ||||
|         if seq_dict.get('account.invoice',False): | ||||
|         if seq_dict.get('account.invoice', False): | ||||
|             j_ids = self._execute('account.journal', 'search', [('code', '=', 'VK')]) | ||||
|             if len(j_ids) != 1: | ||||
|                 return False | ||||
|  | @ -323,15 +325,15 @@ class CamadeusFunctions(): | |||
|     def set_admin_rights(self): | ||||
|         """Setze Administrator Rechte""" | ||||
| 
 | ||||
|         dummy,user_id = self._execute('ir.model.data', 'get_object_reference', 'base', 'user_root') | ||||
|         dummy, user_id = self._execute('ir.model.data', 'get_object_reference', 'base', 'user_root') | ||||
|         groups = [] | ||||
| 
 | ||||
|         # Technische Eigenschaften | ||||
|         dummy,group_id = self._execute('ir.model.data', 'get_object_reference', 'base', 'group_no_one') | ||||
|         dummy, group_id = self._execute('ir.model.data', 'get_object_reference', 'base', 'group_no_one') | ||||
|         groups.append((4, group_id)) | ||||
| 
 | ||||
|         # Finanzmanager | ||||
|         dummy,group_id = self._execute('ir.model.data', 'get_object_reference', 'account', 'group_account_manager') | ||||
|         dummy, group_id = self._execute('ir.model.data', 'get_object_reference', 'account', 'group_account_manager') | ||||
|         groups.append((4, group_id)) | ||||
| 
 | ||||
|         vals = { | ||||
|  | @ -354,20 +356,22 @@ class CamadeusFunctions(): | |||
|         """Konfiguration Kontenplan""" | ||||
| 
 | ||||
|         c = self.config | ||||
|         sales_tax_ids = self._execute('account.tax.template', 'search', [('description', '=', c.sales_tax), ('parent_id', '=', False)]) | ||||
|         sales_tax_ids = self._execute('account.tax.template', 'search', | ||||
|                                       [('description', '=', c.sales_tax), ('parent_id', '=', False)]) | ||||
|         if not sales_tax_ids: | ||||
|             return False | ||||
|         purchase_tax_ids = self._execute('account.tax.template', 'search', [('description', '=', c.purchase_tax), ('parent_id', '=', False)]) | ||||
|         purchase_tax_ids = self._execute('account.tax.template', 'search', | ||||
|                                          [('description', '=', c.purchase_tax), ('parent_id', '=', False)]) | ||||
|         if not purchase_tax_ids: | ||||
|             return False | ||||
| 
 | ||||
|         # Set Your Accounting Options | ||||
|         dummy,currency_id = self._execute('ir.model.data', 'get_object_reference', 'base', 'EUR') | ||||
|         dummy, currency_id = self._execute('ir.model.data', 'get_object_reference', 'base', 'EUR') | ||||
|         vals = {} | ||||
|         vals['chart_template_id'] = c.chart_template_id | ||||
|         vals['sale_tax'] = sales_tax_ids[0] | ||||
|         vals['purchase_tax'] = purchase_tax_ids[0] | ||||
|         vals['company_id'] = 1 # Default | ||||
|         vals['company_id'] = 1  # Default | ||||
|         vals['currency_id'] = currency_id | ||||
|         wizard_id = self._execute('wizard.multi.charts.accounts', 'create', vals) | ||||
|         self._execute('wizard.multi.charts.accounts', 'action_next', [wizard_id]) | ||||
|  | @ -426,7 +430,7 @@ class CamadeusFunctions(): | |||
|             return False | ||||
| 
 | ||||
|         # Update names | ||||
|         for uom_xml_id,name in c.active_uoms.items(): | ||||
|         for uom_xml_id, name in c.active_uoms.items(): | ||||
|             uom_id = self._execute('ir.model.data', 'xmlid_to_res_id', uom_xml_id) | ||||
|             res = self._execute('product.uom', 'write', [uom_id], {'name': name}, context) | ||||
|             if not res: | ||||
|  | @ -443,10 +447,13 @@ class CamadeusFunctions(): | |||
|         self._execute('account.fiscal.position', 'write', invalid_ids, {'active': False}) | ||||
| 
 | ||||
|         # Mappings inaktiver Steuern löschen (also wenn rechte Seite eine inaktive Steuer ist, wie z. B "strf. i.g.L")) | ||||
|         valid_position_ids = self._execute('account.fiscal.position', 'search', [('name', 'in', c.valid_fiscal_positions)]) | ||||
|         valid_position_ids = self._execute('account.fiscal.position', 'search', | ||||
|                                            [('name', 'in', c.valid_fiscal_positions)]) | ||||
|         valid_tax_ids = self._execute('account.tax', 'search', [('parent_id', '=', False)]) | ||||
| 
 | ||||
|         position_tax_line_ids = self._execute('account.fiscal.position.tax', 'search', [('position_id', 'in', valid_position_ids), ('tax_dest_id', 'not in', valid_tax_ids)]) | ||||
|         position_tax_line_ids = self._execute('account.fiscal.position.tax', 'search', | ||||
|                                               [('position_id', 'in', valid_position_ids), | ||||
|                                                ('tax_dest_id', 'not in', valid_tax_ids)]) | ||||
|         vals = {'tax_dest_id': False} | ||||
|         return self._execute('account.fiscal.position.tax', 'write', position_tax_line_ids, vals) | ||||
| 
 | ||||
|  | @ -454,9 +461,9 @@ class CamadeusFunctions(): | |||
|         """Aktualisiere Modul""" | ||||
| 
 | ||||
|         module_name = self.config.module_name | ||||
|         mod_ids = self._execute('ir.module.module', 'search', [('name', '=', module_name),('state', '=', 'installed')]) | ||||
|         mod_ids = self._execute('ir.module.module', 'search', [('name', '=', module_name), ('state', '=', 'installed')]) | ||||
|         if not len(mod_ids) == 1: | ||||
|            raise Exception('Module "%s" not found or not installed.' % module_name) | ||||
|             raise Exception('Module "%s" not found or not installed.' % module_name) | ||||
| 
 | ||||
|         self._execute('ir.module.module', 'button_upgrade', mod_ids) | ||||
|         self._execute('base.module.upgrade', 'upgrade_module', []) | ||||
|  | @ -466,9 +473,10 @@ class CamadeusFunctions(): | |||
|         """Installiere Modul""" | ||||
| 
 | ||||
|         module_name = self.config.module_name | ||||
|         mod_ids = self._execute('ir.module.module', 'search', [('name', '=', module_name), ('state', '=', 'uninstalled')]) | ||||
|         mod_ids = self._execute('ir.module.module', 'search', | ||||
|                                 [('name', '=', module_name), ('state', '=', 'uninstalled')]) | ||||
|         if not len(mod_ids) == 1: | ||||
|            raise Exception('Module "%s" not found or is not in state "uninstalled".' % module_name) | ||||
|             raise Exception('Module "%s" not found or is not in state "uninstalled".' % module_name) | ||||
| 
 | ||||
|         self._execute('ir.module.module', 'button_install', mod_ids) | ||||
|         self._execute('base.module.upgrade', 'upgrade_module', []) | ||||
|  | @ -484,9 +492,9 @@ class CamadeusFunctions(): | |||
|     def uninstall_module(self): | ||||
|         """Deinstalliere Modul""" | ||||
|         module_name = self.config.module_name | ||||
|         mod_ids = self._execute('ir.module.module', 'search', [('name','=',module_name),('state','=','installed')]) | ||||
|         mod_ids = self._execute('ir.module.module', 'search', [('name', '=', module_name), ('state', '=', 'installed')]) | ||||
|         if not len(mod_ids) == 1: | ||||
|            raise Exception("Module '%s' not found or is not installed." % module_name) | ||||
|             raise Exception("Module '%s' not found or is not installed." % module_name) | ||||
| 
 | ||||
|         self._execute('ir.module.module', 'button_uninstall', mod_ids) | ||||
|         self._execute('base.module.upgrade', 'upgrade_module', []) | ||||
|  | @ -495,9 +503,10 @@ class CamadeusFunctions(): | |||
|     def cancel_upgrade_module(self): | ||||
|         """Modul Upgrade abbrechen""" | ||||
|         module_name = self.config.module_name | ||||
|         mod_ids = self._execute('ir.module.module', 'search', [('name','=',module_name),('state','=','to upgrade')]) | ||||
|         mod_ids = self._execute('ir.module.module', 'search', | ||||
|                                 [('name', '=', module_name), ('state', '=', 'to upgrade')]) | ||||
|         if not len(mod_ids) == 1: | ||||
|            raise Exception("Module '%s' not found or is not installed." % module_name) | ||||
|             raise Exception("Module '%s' not found or is not installed." % module_name) | ||||
| 
 | ||||
|         self._execute('ir.module.module', 'button_upgrade_cancel', mod_ids) | ||||
|         return True | ||||
|  | @ -520,7 +529,8 @@ class CamadeusFunctions(): | |||
|         """Aktualisiere Modul""" | ||||
| 
 | ||||
|         for module_name in self.config.modules: | ||||
|             mod_ids = self._execute('ir.module.module', 'search', [('name', '=', module_name), ('state', '=', 'installed')]) | ||||
|             mod_ids = self._execute('ir.module.module', 'search', | ||||
|                                     [('name', '=', module_name), ('state', '=', 'installed')]) | ||||
|             if not len(mod_ids) == 1: | ||||
|                 raise Exception('Module "%s" not found or ist not installed.' % module_name) | ||||
|             self._execute('ir.module.module', 'button_upgrade', mod_ids) | ||||
|  | @ -531,7 +541,8 @@ class CamadeusFunctions(): | |||
|     def set_warehouse(self): | ||||
|         """Name des Zentrallagers setzen""" | ||||
| 
 | ||||
|         is_installed = self._execute('ir.module.module', 'search', [('name', '=', 'stock'), ('state', '=', 'installed')]) | ||||
|         is_installed = self._execute('ir.module.module', 'search', | ||||
|                                      [('name', '=', 'stock'), ('state', '=', 'installed')]) | ||||
|         if is_installed: | ||||
|             vals = { | ||||
|                 'name': self.config.warehouse_name or self.config.company_data.get('name', 'Mein Unternehmen'), | ||||
|  | @ -547,7 +558,7 @@ class CamadeusFunctions(): | |||
|     def set_dmi_noupdate(self): | ||||
|         """DMI: Einträge auf 'no update' setzen""" | ||||
| 
 | ||||
|         domain = [('module','=','cam_dmi'), ('noupdate', '=', False)] | ||||
|         domain = [('module', '=', 'dp_dmi'), ('noupdate', '=', False)] | ||||
|         data_ids = self._execute('ir.model.data', 'search', domain) | ||||
| 
 | ||||
|         vals = {'noupdate': True} | ||||
|  | @ -556,7 +567,7 @@ class CamadeusFunctions(): | |||
|     def dmi_confirm_inventory(self): | ||||
|         """DMI: Lagerstand einbuchen""" | ||||
| 
 | ||||
|         dummy,inventory_id = self._execute('ir.model.data', 'get_object_reference', 'cam_dmi','inv_init') | ||||
|         dummy, inventory_id = self._execute('ir.model.data', 'get_object_reference', 'dp_dmi', 'inv_init') | ||||
| 
 | ||||
|         inventory = self._execute('stock.inventory', 'read', inventory_id, ['state']) | ||||
| 
 | ||||
|  | @ -620,12 +631,13 @@ class CamadeusFunctions(): | |||
|             vals = {} | ||||
|             vals['res_model'] = 'res.users' | ||||
|             vals['file'] = self._readAndReturnFile(self.config.users_file) | ||||
|             fields = [u'id', u'name', u'login', u'email', u'groups_id/id', False, u'tz', u'mobile', u'phone', u'function'] | ||||
|             options =  {u'headers': True, u'quoting': u'"', u'separator': u',', u'encoding': u'utf-8'} | ||||
|             fields = [u'id', u'name', u'login', u'email', u'groups_id/id', False, u'tz', u'mobile', u'phone', | ||||
|                       u'function'] | ||||
|             options = {u'headers': True, u'quoting': u'"', u'separator': u',', u'encoding': u'utf-8'} | ||||
| 
 | ||||
|             wizard_id = self._execute('base_import.import', 'create', vals) | ||||
|             if wizard_id: | ||||
|                 messages = self._execute('base_import.import', 'do', wizard_id, fields,options) | ||||
|                 messages = self._execute('base_import.import', 'do', wizard_id, fields, options) | ||||
|                 if messages: | ||||
|                     print messages | ||||
|                     return False | ||||
|  | @ -677,11 +689,11 @@ class CamadeusFunctions(): | |||
|     def set_default_values(self): | ||||
|         """Defaultwerte für Dokumente setzen""" | ||||
| 
 | ||||
|         for model,field,value in self.config.default_values: | ||||
|         for model, field, value in self.config.default_values: | ||||
|             # Falls XML ID (prefix "XML:") dann die DB ID holen | ||||
|             if value[0:4] == 'XML:': | ||||
|                 xml_id = value[4:] | ||||
|                 dummy,dummy2,res_id = self._execute('ir.model.data', 'xmlid_lookup', xml_id) | ||||
|                 dummy, dummy2, res_id = self._execute('ir.model.data', 'xmlid_lookup', xml_id) | ||||
|                 if not res_id: | ||||
|                     raise Exception('Defaultwerte anlegen: XML ID %s nicht vorhanden!' % (xml_id)) | ||||
|                 value = res_id | ||||
|  | @ -704,9 +716,9 @@ class CamadeusFunctions(): | |||
|     def update_special_values(self): | ||||
|         """Spezialwerte setzen""" | ||||
| 
 | ||||
|         #Z. B.: | ||||
|         # Z. B.: | ||||
|         ## Lösche alle Anreden außer Herr und Frau | ||||
|         #data_deletes = [ | ||||
|         # data_deletes = [ | ||||
|         #    'base.res_partner_title_doctor', | ||||
|         #    'base.res_partner_title_miss', | ||||
|         #    'base.res_partner_title_prof', | ||||
|  | @ -715,8 +727,8 @@ class CamadeusFunctions(): | |||
|         #    'base.res_partner_title_ltd', | ||||
|         #    'sale.email_template_edi_sale', | ||||
|         #    'account.email_template_edi_invoice', | ||||
|         #] | ||||
|         #for xml_id in data_deletes: | ||||
|         # ] | ||||
|         # for xml_id in data_deletes: | ||||
|         #    try: | ||||
|         #        dummy,model,res_id = self._execute('ir.model.data', 'xmlid_lookup', xml_id) | ||||
|         #        self._execute(model, 'unlink',  [res_id]) | ||||
|  | @ -728,8 +740,8 @@ class CamadeusFunctions(): | |||
|     def update_values(self): | ||||
|         """Existierende Daten aktualisieren""" | ||||
| 
 | ||||
|         for xml_id,vals in self.config.data_updates.items(): | ||||
|             dummy,model,res_id = self._execute('ir.model.data', 'xmlid_lookup', xml_id) | ||||
|         for xml_id, vals in self.config.data_updates.items(): | ||||
|             dummy, model, res_id = self._execute('ir.model.data', 'xmlid_lookup', xml_id) | ||||
|             self._execute(model, 'write', [res_id], vals) | ||||
| 
 | ||||
|         return True | ||||
|  | @ -737,7 +749,7 @@ class CamadeusFunctions(): | |||
|     def set_sys_params(self): | ||||
|         """Systemparameter setzen""" | ||||
| 
 | ||||
|         for key,value in self.config.system_parameters.items(): | ||||
|         for key, value in self.config.system_parameters.items(): | ||||
|             param_ids = self._execute('ir.config_parameter', 'search', [('key', '=', key)]) | ||||
|             vals = { | ||||
|                 'key': key, | ||||
|  | @ -749,6 +761,17 @@ class CamadeusFunctions(): | |||
|                 self._execute('ir.config_parameter', 'create', vals) | ||||
|         return True | ||||
| 
 | ||||
|     def remove_sys_params(self): | ||||
|         """Systemparameter entfernen""" | ||||
| 
 | ||||
|         for key, value in self.config.system_parameters_remove_on_rollout.items(): | ||||
|             print key | ||||
|             param_ids = self._execute('ir.config_parameter', 'search', [('key', '=', key)]) | ||||
|             print param_ids | ||||
|             if param_ids: | ||||
|                 self._execute('ir.config_parameter', 'unlink', param_ids) | ||||
|         return True | ||||
| 
 | ||||
|     def setup_reports(self): | ||||
|         """Berichte konfigurieren""" | ||||
| 
 | ||||
|  | @ -763,13 +786,13 @@ class CamadeusFunctions(): | |||
|     def invalidate_email(self): | ||||
|         """In E-Mail-Adressen @ durch # ersetzen, um unbeabsichtigen E-Mail-Versand zu vermeiden""" | ||||
| 
 | ||||
|         #E-Mail adressen von res_partner: @ -> # | ||||
|         p_ids = self._execute('res.partner', 'search', [('email','ilike','%@%')]) | ||||
|         # E-Mail adressen von res_partner: @ -> # | ||||
|         p_ids = self._execute('res.partner', 'search', [('email', 'ilike', '%@%')]) | ||||
|         partner = self._execute('res.partner', 'read', p_ids, ['email']) | ||||
|         for p in partner: | ||||
|             id = p['id'] | ||||
|             email = p['email'] | ||||
|             new_email = email.replace('@','#') | ||||
|             new_email = email.replace('@', '#') | ||||
|             self._execute('res.partner', 'write', [id], {'email': new_email}) | ||||
| 
 | ||||
|     def finance_config(self): | ||||
|  | @ -786,10 +809,10 @@ class CamadeusFunctions(): | |||
|         """Anonymisieren der Daten""" | ||||
| 
 | ||||
|         res = True | ||||
|         #res &= self.make_anonymous_one('make_anonymous_partner') | ||||
|         #res &= self.make_anonymous_one('make_anonymous_project') | ||||
|         #res &= self.make_anonymous_one('make_anonymous_employee') | ||||
|         #res &= self.make_anonymous_one('make_anonymous_leads') | ||||
|         # res &= self.make_anonymous_one('make_anonymous_partner') | ||||
|         # res &= self.make_anonymous_one('make_anonymous_project') | ||||
|         # res &= self.make_anonymous_one('make_anonymous_employee') | ||||
|         # res &= self.make_anonymous_one('make_anonymous_leads') | ||||
|         res &= self.make_anonymous_one('make_anonymous_mailserver') | ||||
|         res &= self.make_anonymous_one('make_anonymous_cron') | ||||
|         return res | ||||
|  | @ -809,27 +832,27 @@ class CamadeusFunctions(): | |||
|         ids = self._execute('res.partner', 'search', []) | ||||
|         for id in ids: | ||||
|             vals = { | ||||
|                     'name': 'Partner %s' % id, | ||||
|                     'street': '----', | ||||
|                     'email': 'test@example.com', | ||||
|                     } | ||||
|                 'name': 'Partner %s' % id, | ||||
|                 'street': '----', | ||||
|                 'email': 'test@example.com', | ||||
|             } | ||||
|             self._execute('res.partner', 'write', [id], vals) | ||||
| 
 | ||||
|     def make_anonymous_project(self): | ||||
|         if(self._execute('ir.module.module', 'search', [('name', '=', 'project'), ('state', '=', 'installed')])): | ||||
|         if (self._execute('ir.module.module', 'search', [('name', '=', 'project'), ('state', '=', 'installed')])): | ||||
|             ids = self._execute('project.project', 'search', []) | ||||
|             for id in ids: | ||||
|                 vals = { | ||||
|                         'name': 'Projekt %s' % id, | ||||
|                         } | ||||
|                     'name': 'Projekt %s' % id, | ||||
|                 } | ||||
|                 self._execute('project.project', 'write', [id], vals) | ||||
| 
 | ||||
|             #Tasks | ||||
|             # Tasks | ||||
|             ids = self._execute('project.task', 'search', []) | ||||
|             for id in ids: | ||||
|                 vals = { | ||||
|                         'name': 'Aufgabe %s' % id, | ||||
|                         } | ||||
|                     'name': 'Aufgabe %s' % id, | ||||
|                 } | ||||
|                 self._execute('project.task', 'write', [id], vals) | ||||
| 
 | ||||
|     def make_anonymous_employee(self): | ||||
|  | @ -837,21 +860,21 @@ class CamadeusFunctions(): | |||
|             ids = self._execute('hr.employee', 'search', []) | ||||
|             for id in ids: | ||||
|                 vals = { | ||||
|                         'name': 'Mitarbeiter %s' % id, | ||||
|                         'work_email': 'test@example.com', | ||||
|                         } | ||||
|                 self._execute('hr.employee','write', [id], vals) | ||||
|                     'name': 'Mitarbeiter %s' % id, | ||||
|                     'work_email': 'test@example.com', | ||||
|                 } | ||||
|                 self._execute('hr.employee', 'write', [id], vals) | ||||
| 
 | ||||
|     def make_anonymous_leads(self): | ||||
|         if (self._execute('ir.module.module', 'search', [('name', '=', 'crm'), ('state', '=', 'installed')])): | ||||
|             ids = self._execute('crm.lead', 'search', []) | ||||
|             for id in ids: | ||||
|                 vals = { | ||||
|                         'name': 'Lead %s' % id, | ||||
|                         'email_from': 'test@example.com', | ||||
|                         'description': '', | ||||
|                         } | ||||
|                 ids = self._execute('crm.lead','write', [id], vals) | ||||
|                     'name': 'Lead %s' % id, | ||||
|                     'email_from': 'test@example.com', | ||||
|                     'description': '', | ||||
|                 } | ||||
|                 ids = self._execute('crm.lead', 'write', [id], vals) | ||||
| 
 | ||||
|     def make_anonymous_mailserver(self): | ||||
|         server_ids = self._execute('ir.mail_server', 'search', []) | ||||
|  | @ -864,3 +887,28 @@ class CamadeusFunctions(): | |||
|         cron_ids = self._execute('ir.cron', 'search', []) | ||||
|         if cron_ids: | ||||
|             self._execute('ir.cron', 'write', cron_ids, {'active': False}) | ||||
| 
 | ||||
|     def set_ext_ids(self): | ||||
|         """ExtIDs für Accounts und Types""" | ||||
| 
 | ||||
|         # # Konten Ext IDs | ||||
|         # lst_accs = ['200000', '330000', '250000', '350000']  # odoo 9 nummern | ||||
|         # for acc in lst_accs: | ||||
|         #     res_id = self._execute('account.account', 'search', [('code', '=', acc)]) | ||||
|         #     # print "---------------------------------------------" | ||||
|         #     # print acc | ||||
|         #     # print res_id | ||||
|         #     vals = { | ||||
|         #         'name': 'cust_account_mapp_' + acc, | ||||
|         #         'module': 'account', | ||||
|         #         'model': 'account.account', | ||||
|         #         'res_id': res_id[0], | ||||
|         #     } | ||||
|         #     try: | ||||
|         #         self._execute('ir.model.data', 'create', vals) | ||||
|         #     except: | ||||
|         #         print "Fehler Anlage ExtID " + 'cust_account_mapp_' + acc | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|         return True | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue