Setup Erweiterungen aus anderen Projekten übernommen:
create_from_dump, anonym, invalidate_email, uninstall, cancel_upgrade, finance_config Zusätzlich: setup_part (Setup mit Angabe der Setup Methode), usage erweitertdevelop
parent
a9d0bb2b59
commit
2fb31d259b
|
|
@ -0,0 +1,83 @@
|
|||
#!/usr/bin/python
|
||||
# -*- encoding: utf-8 -*-
|
||||
import fnmatch
|
||||
import polib
|
||||
import re
|
||||
import os
|
||||
import string
|
||||
|
||||
start_directory = '../..'
|
||||
language_filename = 'de.po'
|
||||
|
||||
print "Start"
|
||||
|
||||
search_replace_regex = [(u'Ist ein Unternehmen\?', u'Hauptkontakt?'),
|
||||
(u'Ist ein Unternehmen', u'Hauptkontakt'),
|
||||
(u'Aufträge', u'Kundenbestellungen'),
|
||||
(u'der Auftrag', u'die Kundenbestellung'),
|
||||
(u'des Auftrags', u'der Kundenbestellung'),
|
||||
(u'dem Auftrag', u'der Kundenbestellung'),
|
||||
(u'den Auftrag', u'die Kundenbestellung'),
|
||||
(u'ein Auftrag', u'eine Kundenbestellung'),
|
||||
(u'einen Auftrag', u'eine Kundenbestellung'),
|
||||
(u'diesen Auftrag', u'diese Kundenbestellung'),
|
||||
(u'Der Auftrag', u'Die Kundenbestellung'),
|
||||
(u'Des Auftrags', u'Der Kundenbestellung'),
|
||||
(u'Dem Auftrag', u'Der Kundenbestellung'),
|
||||
(u'Den Auftrag', u'Die Kundenbestellung'),
|
||||
(u'Ein Auftrag', u'Eine Kundenbestellung'),
|
||||
(u'Einen Auftrag', u'Eine Kundenbestellung'),
|
||||
(u'Diesen Auftrag', u'Diese Kundenbestellung'),
|
||||
(u'Auftragsnummer', u'Kundenbestellung Nr.'),
|
||||
(u'Auftrag', u'Kundenbestellung'),
|
||||
(u'der Verkaufsauftrag', u'die Kundenbestellung'),
|
||||
(u'des Verkaufsauftrag', u'der Kundenbestellung'),
|
||||
(u'dem Verkaufsauftrag', u'der Kundenbestellung'),
|
||||
(u'den Verkaufsauftrag', u'die Kundenbestellung'),
|
||||
(u'ein Verkaufsauftrag', u'eine Kundenbestellung'),
|
||||
(u'einen Verkaufsauftrag', u'eine Kundenbestellung'),
|
||||
(u'diesen Verkaufsauftrag', u'diese Kundenbestellung'),
|
||||
(u'Der Verkaufsauftrag', u'Die Kundenbestellung'),
|
||||
(u'Des Verkaufsauftrag', u'Der Kundenbestellung'),
|
||||
(u'Dem Verkaufsauftrag', u'Der Kundenbestellung'),
|
||||
(u'Den Verkaufsauftrag', u'Die Kundenbestellung'),
|
||||
(u'Ein Verkaufsauftrag', u'Eine Kundenbestellung'),
|
||||
(u'Einen Verkaufsauftrag', u'Eine Kundenbestellung'),
|
||||
(u'Diesen Verkaufsauftrag', u'Diese Kundenbestellung'),
|
||||
(u'Verkaufsauftrag', u'Kundenbestellung'),
|
||||
(u'Verkaufsauftrag', u'Kundenbestellung'),
|
||||
(u'Amount Paid', u'Betrag bezahlt'),
|
||||
]
|
||||
|
||||
search_module = ['sale', 'base']
|
||||
|
||||
valid_entries = []
|
||||
|
||||
for root, dirs, files in os.walk(start_directory):
|
||||
for filename in fnmatch.filter(files, language_filename):
|
||||
print "File: " + filename
|
||||
src = os.path.join(root, filename)
|
||||
po = polib.pofile(src)
|
||||
for e in po:
|
||||
if not e.obsolete:
|
||||
valid_entries.append(e)
|
||||
|
||||
|
||||
po2 = polib.POFile()
|
||||
|
||||
for se in search_replace_regex:
|
||||
for entry in valid_entries:
|
||||
module = re.search(u'(module:)(.*)', entry.comment)
|
||||
if module:
|
||||
module = module.group(2).strip()
|
||||
if module in search_module:
|
||||
if re.search(se[0], entry.msgstr):
|
||||
entry.msgstr = string.replace(entry.msgstr, se[0], se[1])
|
||||
po2.append(entry)
|
||||
print entry.msgid, "<->", entry.msgstr
|
||||
elif re.search(se[0], entry.msgid):
|
||||
entry.msgstr = se[1]
|
||||
po2.append(entry)
|
||||
print entry.msgid, "<->", entry.msgstr
|
||||
|
||||
po2.save('../../setup/auto_translated2.po')
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
#!/usr/bin/python
|
||||
# -*- encoding: utf-8 -*-
|
||||
import fnmatch
|
||||
import polib
|
||||
import re
|
||||
import os
|
||||
import string
|
||||
|
||||
start_directory = '../..'
|
||||
language_filename = '*.pot'
|
||||
|
||||
search_replace_regex = [(u'^Partner$', u'Kunde'),
|
||||
(u'^Partners$', u'Kunden'),
|
||||
(u'^Partner:$', u'Kunde:'),
|
||||
(u'^Partners:$', u'Kunden:'),
|
||||
(u'^Whole Company$', u'Ganzes Unternehmen'),
|
||||
(u'^General announces for all employees.$', u'Allgemeine Nachrichten für alle Mitarbeiter'),
|
||||
#(u'^Exception Rules$', u'Ausnahmeregeln'),
|
||||
(u'^Payment Method$', u'Zahlungsart'),
|
||||
#(u'^Automatic Workflow$', u'Automatischer Workflow'),
|
||||
#(u'^Exception Name$', u'Name der Ausnahme'),
|
||||
(u'^Description$', u'Beschreibung'),
|
||||
(u'^Apply on$', u'Anwenden auf'),
|
||||
(u'^Payment Term$', u'Zahlungsziel'),
|
||||
(u'^Company$', u'Firma'),
|
||||
#(u'^Journal for payment$', u'Journal für Zahlungseingänge'),
|
||||
(u'^Default Values$', u'Standardwerte'),
|
||||
(u'^Main Exception$', u'Fehlermeldung'),
|
||||
# (u'^$', u''),
|
||||
]
|
||||
|
||||
search_module = False # ['sale', 'stock']
|
||||
|
||||
valid_entries = []
|
||||
|
||||
for root, dirs, files in os.walk(start_directory):
|
||||
for filename in fnmatch.filter(files, language_filename):
|
||||
print filename
|
||||
src = os.path.join(root, filename)
|
||||
try:
|
||||
po = polib.pofile(src)
|
||||
except IOError as e:
|
||||
print "ERROR", e
|
||||
continue
|
||||
for e in po:
|
||||
if not e.obsolete:
|
||||
valid_entries.append(e)
|
||||
|
||||
|
||||
po2 = polib.POFile()
|
||||
|
||||
cnt = 0
|
||||
for se in search_replace_regex:
|
||||
for entry in valid_entries:
|
||||
module = re.search(u'(module:)(.*)', entry.comment)
|
||||
if module:
|
||||
module = module.group(2).strip()
|
||||
if search_module is False or module in search_module:
|
||||
if re.search(se[0], entry.msgstr):
|
||||
entry.msgstr = string.replace(entry.msgstr, se[0], se[1])
|
||||
po2.append(entry)
|
||||
cnt += 1
|
||||
print entry.msgid, "<->", entry.msgstr, cnt
|
||||
elif re.search(se[0], entry.msgid):
|
||||
entry.msgstr = se[1]
|
||||
po2.append(entry)
|
||||
cnt += 1
|
||||
print entry.msgid, "<->", entry.msgstr, cnt
|
||||
|
||||
po2.save('../../setup/auto_translated2.po')
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
#!/usr/bin/python
|
||||
# -*- encoding: utf-8 -*-
|
||||
import fnmatch
|
||||
import polib
|
||||
import re
|
||||
import os
|
||||
import string
|
||||
|
||||
start_directory = '../..'
|
||||
language_filename = '*.pot'
|
||||
|
||||
search_replace_regex = [
|
||||
]
|
||||
|
||||
search_module = False # ['sale', 'stock']
|
||||
|
||||
valid_entries = []
|
||||
|
||||
for root, dirs, files in os.walk(start_directory):
|
||||
for filename in fnmatch.filter(files, language_filename):
|
||||
print filename
|
||||
src = os.path.join(root, filename)
|
||||
try:
|
||||
po = polib.pofile(src)
|
||||
except IOError as e:
|
||||
print "ERROR", e
|
||||
continue
|
||||
for e in po:
|
||||
if not e.obsolete:
|
||||
valid_entries.append(e)
|
||||
|
||||
|
||||
po2 = polib.POFile()
|
||||
|
||||
cnt = 0
|
||||
for se in search_replace_regex:
|
||||
for entry in valid_entries:
|
||||
module = re.search(u'(module:)(.*)', entry.comment)
|
||||
if module:
|
||||
module = module.group(2).strip()
|
||||
if search_module is False or module in search_module:
|
||||
if re.search(se[0], entry.msgstr):
|
||||
entry.msgstr = string.replace(entry.msgstr, se[0], se[1])
|
||||
po2.append(entry)
|
||||
cnt += 1
|
||||
print entry.msgid, "<->", entry.msgstr, cnt
|
||||
elif re.search(se[0], entry.msgid):
|
||||
entry.msgstr = se[1]
|
||||
po2.append(entry)
|
||||
cnt += 1
|
||||
print entry.msgid, "<->", entry.msgstr, cnt
|
||||
|
||||
po2.save('../../setup/auto_translated3.po')
|
||||
125
setup/lib/cli.py
125
setup/lib/cli.py
|
|
@ -7,9 +7,25 @@ from environments import ENVIRONMENTS, Environment
|
|||
from functions import CamadeusFunctions
|
||||
|
||||
def main():
|
||||
|
||||
def _usage():
|
||||
print 'cam.py <environment> [create|setup|rollout|update] [<module_name>]'
|
||||
print 'cam.py list-envs'
|
||||
print '\nVerwendung: cam.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 ' update module_name Modul updaten'
|
||||
print ' install modul_name Modul installieren'
|
||||
print ' uninstall modul_name Modul deinstallieren'
|
||||
print ' cancel_upgrade modul_name Abbruch Modulinstallation'
|
||||
print ' update_modules Update aller Module in der config Modulliste.'
|
||||
print ' update_all Update aller verfügbaren Module'
|
||||
print ' list-envs Environments auflisten'
|
||||
print ' anonym Daten anonymisieren (Namen, Adresse, E-Mail, ...)'
|
||||
print ' invalidate_email E-Mail Adressen invalidieren (@ > #)\n'
|
||||
sys.exit(3)
|
||||
|
||||
argv = sys.argv[1:]
|
||||
|
|
@ -38,7 +54,7 @@ def main():
|
|||
return
|
||||
else:
|
||||
if len(argv) != 2:
|
||||
if len(argv) == 3 and argv[1] in ['update', 'install']:
|
||||
if len(argv) == 3 and argv[1] in ['update', 'install', 'uninstall', 'cancel_update' 'setup_part']:
|
||||
# 'update' requires additional param 'module_name'
|
||||
pass
|
||||
else:
|
||||
|
|
@ -70,38 +86,47 @@ def main():
|
|||
'set_admin_rights',
|
||||
]
|
||||
|
||||
if cmd == 'setup':
|
||||
if cmd == 'create_from_dump':
|
||||
methods = [
|
||||
'login',
|
||||
'uninstall_chat',
|
||||
'install_modules',
|
||||
'set_warehouse',
|
||||
'base_config',
|
||||
'sale_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',
|
||||
'set_currencies',
|
||||
'set_decimal_price',
|
||||
'set_default_values',
|
||||
'set_translations',
|
||||
'set_default_removal_strategy',
|
||||
'default_set_order_policy',
|
||||
'delete_mail_server',
|
||||
'update_values',
|
||||
'set_sys_params',
|
||||
'setup_reports',
|
||||
'create_db_from_dump',
|
||||
]
|
||||
|
||||
setup_methods = [
|
||||
'login',
|
||||
'uninstall_chat',
|
||||
'install_modules',
|
||||
'set_warehouse',
|
||||
'base_config',
|
||||
'sale_config',
|
||||
#'finance_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',
|
||||
'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_sys_params',
|
||||
'setup_reports',
|
||||
]
|
||||
|
||||
if cmd == 'setup':
|
||||
methods = setup_methods
|
||||
|
||||
if cmd == 'rollout':
|
||||
methods = [
|
||||
'login',
|
||||
|
|
@ -125,6 +150,20 @@ def main():
|
|||
'install_module',
|
||||
]
|
||||
|
||||
if cmd == 'uninstall':
|
||||
instance.config.module_name = argv[2]
|
||||
methods = [
|
||||
'login',
|
||||
'uninstall_module',
|
||||
]
|
||||
|
||||
if cmd == 'cancel_upgrade':
|
||||
instance.config.module_name = argv[2]
|
||||
methods = [
|
||||
'login',
|
||||
'cancel_upgrade_module',
|
||||
]
|
||||
|
||||
if cmd == 'update_modules':
|
||||
methods = [
|
||||
'login',
|
||||
|
|
@ -137,6 +176,28 @@ def main():
|
|||
'update_all',
|
||||
]
|
||||
|
||||
if cmd == 'setup_part':
|
||||
if ((argv[2] == 'info') or (not (argv[2] in setup_methods))):
|
||||
print '\nVerfügbare setup Methoden: ' + str(setup_methods) + '\n'
|
||||
return
|
||||
|
||||
methods = [
|
||||
'login',
|
||||
argv[2],
|
||||
]
|
||||
|
||||
if cmd == 'anonym':
|
||||
methods = [
|
||||
'login',
|
||||
'make_anonymous',
|
||||
]
|
||||
|
||||
if cmd == 'invalidate_email':
|
||||
methods = [
|
||||
'login',
|
||||
'invalidate_email',
|
||||
]
|
||||
|
||||
if not methods:
|
||||
print 'Unbekanntes Kommando'
|
||||
_usage()
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
class Config():
|
||||
def __init__(self):
|
||||
|
||||
self.dump_file = "upgraded_file_name.dump"
|
||||
|
||||
self.module_name = None
|
||||
self.lang = 'de_DE' # de_DE, en_US
|
||||
self.chart_of_accounts = 'l10n_at'
|
||||
|
|
@ -98,6 +101,12 @@ class Config():
|
|||
'group_costing_method': True, # Benutzen Sie 'Einkaufs-' oder 'Durchschnittspreis' zur Bestandsbewertung
|
||||
}
|
||||
|
||||
|
||||
self.finance_config = {
|
||||
#'group_multi_currency':True
|
||||
}
|
||||
|
||||
|
||||
#Einstellungen Personal
|
||||
self.hr_config = {
|
||||
'module_hr_expense': True, # Spesen der Mitarbeiter verwalten
|
||||
|
|
@ -224,8 +233,11 @@ class Config():
|
|||
|
||||
self.users_file = 'res.users.csv'
|
||||
|
||||
self.translation_files = [
|
||||
'ir.translation.csv'
|
||||
self.translation_files = [ # Reihenfolge!
|
||||
#'auto_translated2.po',
|
||||
'ir.translation.csv',
|
||||
#'auto_translated.po',
|
||||
#'auto_translated3.po',
|
||||
]
|
||||
|
||||
self.default_values = [ # ir.values
|
||||
|
|
|
|||
|
|
@ -33,6 +33,22 @@ class CamadeusFunctions():
|
|||
print 'Error occured: %s' % msg
|
||||
return False
|
||||
|
||||
def create_db_from_dump(self):
|
||||
""" Neue Datenbank von Dump erstellen"""
|
||||
|
||||
fh = open(self.config.dump_file, 'rb')
|
||||
files = {
|
||||
'db_file': ('db_file', fh.read(), 'application/octet-stream'),
|
||||
}
|
||||
|
||||
url = '%s:%s/web/database/restore?restore_pwd=%s&new_db=%s&mode=restore'
|
||||
url %= (self.env.host, self.env.port, self.env.admin_pw, self.env.dbname)
|
||||
res = requests.post(url, files=files, verify=False)
|
||||
# print 'Status:', res.status_code
|
||||
# print 'Response:', res.content
|
||||
return True
|
||||
|
||||
|
||||
def login(self):
|
||||
"""Login"""
|
||||
|
||||
|
|
@ -191,16 +207,16 @@ class CamadeusFunctions():
|
|||
"""Modul 'Sale' installieren"""
|
||||
|
||||
modules_to_install = self._execute('ir.module.module', 'search', [('name', '=', 'sale'), ('state', '!=', 'installed')])
|
||||
res = self._execute('ir.module.module', 'button_install', modules_to_install)
|
||||
res = self._execute('base.module.upgrade', 'upgrade_module', modules_to_install)
|
||||
self._execute('ir.module.module', 'button_install', modules_to_install)
|
||||
self._execute('base.module.upgrade', 'upgrade_module', modules_to_install)
|
||||
return True
|
||||
|
||||
def install_modules(self):
|
||||
"""Module installieren"""
|
||||
|
||||
modules_to_install = self._execute('ir.module.module', 'search', [('name', 'in', self.config.modules), ('state', '!=', 'installed')])
|
||||
res = self._execute('ir.module.module', 'button_install', modules_to_install)
|
||||
res = self._execute('base.module.upgrade', 'upgrade_module', modules_to_install)
|
||||
self._execute('ir.module.module', 'button_install', modules_to_install)
|
||||
self._execute('base.module.upgrade', 'upgrade_module', modules_to_install)
|
||||
return True
|
||||
|
||||
def _set_picking_sequence_prefix(self, code, value):
|
||||
|
|
@ -310,7 +326,7 @@ class CamadeusFunctions():
|
|||
vals = self._execute('account.installer', 'default_get', [])
|
||||
vals['charts'] = self.config.chart_of_accounts
|
||||
wizard_id = self._execute('account.installer', 'create', vals)
|
||||
res = self._execute('account.installer', 'action_next', [wizard_id])
|
||||
self._execute('account.installer', 'action_next', [wizard_id])
|
||||
return True
|
||||
|
||||
def setup_accounting2(self):
|
||||
|
|
@ -333,7 +349,7 @@ class CamadeusFunctions():
|
|||
vals['company_id'] = 1 # Default
|
||||
vals['currency_id'] = currency_id
|
||||
wizard_id = self._execute('wizard.multi.charts.accounts', 'create', vals)
|
||||
res = self._execute('wizard.multi.charts.accounts', 'action_next', [wizard_id])
|
||||
self._execute('wizard.multi.charts.accounts', 'action_next', [wizard_id])
|
||||
return True
|
||||
|
||||
def set_currencies(self):
|
||||
|
|
@ -360,8 +376,8 @@ class CamadeusFunctions():
|
|||
|
||||
modules = ['im_chat', 'im_odoo_support', 'bus']
|
||||
modules_to_install = self._execute('ir.module.module', 'search', [('name', 'in', modules)])
|
||||
res = self._execute('ir.module.module', 'button_uninstall', modules_to_install)
|
||||
res = self._execute('base.module.upgrade', 'upgrade_module', modules_to_install)
|
||||
self._execute('ir.module.module', 'button_uninstall', modules_to_install)
|
||||
self._execute('base.module.upgrade', 'upgrade_module', modules_to_install)
|
||||
return True
|
||||
|
||||
def set_uom(self):
|
||||
|
|
@ -421,8 +437,8 @@ class CamadeusFunctions():
|
|||
if not len(mod_ids) == 1:
|
||||
raise Exception('Module "%s" not found or not installed.' % module_name)
|
||||
|
||||
res = self._execute('ir.module.module', 'button_upgrade', mod_ids)
|
||||
res = self._execute('base.module.upgrade', 'upgrade_module', [])
|
||||
self._execute('ir.module.module', 'button_upgrade', mod_ids)
|
||||
self._execute('base.module.upgrade', 'upgrade_module', [])
|
||||
return True
|
||||
|
||||
def install_module(self):
|
||||
|
|
@ -433,8 +449,8 @@ class CamadeusFunctions():
|
|||
if not len(mod_ids) == 1:
|
||||
raise Exception('Module "%s" not found or is not in state "uninstalled".' % module_name)
|
||||
|
||||
res = self._execute('ir.module.module', 'button_install', mod_ids)
|
||||
res = self._execute('base.module.upgrade', 'upgrade_module', [])
|
||||
self._execute('ir.module.module', 'button_install', mod_ids)
|
||||
self._execute('base.module.upgrade', 'upgrade_module', [])
|
||||
return True
|
||||
|
||||
def update_modules(self):
|
||||
|
|
@ -444,6 +460,27 @@ class CamadeusFunctions():
|
|||
vals = self._execute('base.module.update', 'update_module', [wizard_id])
|
||||
return True
|
||||
|
||||
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')])
|
||||
if not len(mod_ids) == 1:
|
||||
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', [])
|
||||
return True
|
||||
|
||||
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')])
|
||||
if not len(mod_ids) == 1:
|
||||
raise Exception("Module '%s' not found or is not installed." % module_name)
|
||||
|
||||
self._execute('ir.module.module', 'button_upgrade_cancel', mod_ids)
|
||||
return True
|
||||
|
||||
def setup_journals(self):
|
||||
"""Update journals"""
|
||||
|
||||
|
|
@ -465,9 +502,9 @@ class CamadeusFunctions():
|
|||
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)
|
||||
res = self._execute('ir.module.module', 'button_upgrade', mod_ids)
|
||||
self._execute('ir.module.module', 'button_upgrade', mod_ids)
|
||||
|
||||
res = self._execute('base.module.upgrade', 'upgrade_module', [])
|
||||
self._execute('base.module.upgrade', 'upgrade_module', [])
|
||||
return True
|
||||
|
||||
def set_warehouse(self):
|
||||
|
|
@ -635,6 +672,32 @@ class CamadeusFunctions():
|
|||
self._execute('ir.values', 'create', vals)
|
||||
return True
|
||||
|
||||
|
||||
def update_special_values(self):
|
||||
"""Spezialwerte setzen"""
|
||||
|
||||
#Z.B.:
|
||||
## Lösche alle Anreden außer Herr und Frau
|
||||
#data_deletes = [
|
||||
# 'base.res_partner_title_doctor',
|
||||
# 'base.res_partner_title_miss',
|
||||
# 'base.res_partner_title_prof',
|
||||
# 'base.res_partner_title_sir',
|
||||
# 'base.res_partner_title_pvt_ltd',
|
||||
# 'base.res_partner_title_ltd',
|
||||
# 'sale.email_template_edi_sale',
|
||||
# 'account.email_template_edi_invoice',
|
||||
#]
|
||||
#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])
|
||||
# except:
|
||||
# pass
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def update_values(self):
|
||||
"""Existierende Daten aktualisieren"""
|
||||
|
||||
|
|
@ -669,3 +732,112 @@ class CamadeusFunctions():
|
|||
else:
|
||||
return False
|
||||
return True
|
||||
|
||||
def invalidate_email(self):
|
||||
"""E-Mail adressen @ durch # erstezen um unbeabsichtigen E-Mail Versand zu vermeiden"""
|
||||
|
||||
#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('@','#')
|
||||
self._execute('res.partner', 'write', [id], {'email': new_email})
|
||||
|
||||
def finance_config(self):
|
||||
"""Basiskonfiguration für Finanzen Laden"""
|
||||
|
||||
if hasattr(self.config, 'finance_config'):
|
||||
vals = self._execute('account.config.settings', 'default_get', [])
|
||||
vals.update(self.config.finance_config)
|
||||
wizard_id = self._execute('account.config.settings', 'create', vals)
|
||||
return self._execute('account.config.settings', 'execute', [wizard_id])
|
||||
return True
|
||||
|
||||
def make_anonymous(self):
|
||||
"""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_mailserver')
|
||||
res &= self.make_anonymous_one('make_anonymous_cron')
|
||||
return res
|
||||
|
||||
|
||||
def make_anonymous_one(self, func_name):
|
||||
"""Anonymisieren der Daten ein Schritt"""
|
||||
|
||||
try:
|
||||
getattr(self, func_name)()
|
||||
print '.............. ' + func_name + ": OK"
|
||||
except:
|
||||
print '.............. ' + func_name + ": ERROR!!!"
|
||||
return False
|
||||
return True
|
||||
|
||||
def make_anonymous_partner(self):
|
||||
ids = self._execute('res.partner', 'search', [])
|
||||
for id in ids:
|
||||
vals = {
|
||||
'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')])):
|
||||
ids = self._execute('project.project', 'search', [])
|
||||
for id in ids:
|
||||
vals = {
|
||||
'name': "Projekt %s" % id,
|
||||
}
|
||||
self._execute('project.project', 'write', [id], vals)
|
||||
|
||||
#Tasks
|
||||
ids = self._execute('project.task', 'search', [])
|
||||
for id in ids:
|
||||
vals = {
|
||||
'name': "Aufgabe %s" % id,
|
||||
}
|
||||
self._execute('project.task', 'write', [id], vals)
|
||||
|
||||
def make_anonymous_employee(self):
|
||||
if (self._execute('ir.module.module', 'search', [('name', '=', 'hr'), ('state', '=', 'installed')])):
|
||||
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)
|
||||
|
||||
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)
|
||||
|
||||
def make_anonymous_mailserver(self):
|
||||
server_ids = self._execute('ir.mail_server', 'search', [])
|
||||
self._execute('ir.mail_server', 'write', server_ids, {'active': False})
|
||||
|
||||
server_ids = self._execute('fetchmail.server', 'search', [])
|
||||
self._execute('fetchmail.server', 'unlink', server_ids)
|
||||
|
||||
def make_anonymous_cron(self):
|
||||
cron_ids = self._execute('ir.cron', 'search', [])
|
||||
if cron_ids:
|
||||
self._execute('ir.cron', 'write', cron_ids, {'active': False})
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue