[Merge]with: lp:~openerp-dev/openobject-addons/trunk-v62_config

bzr revid: dbr@tinyerp.com-20120427065437-l5cbs5k1v3flvg23
bzr revid: dbr@tinyerp.com-20120502062333-thsx5qy31mvi049l
This commit is contained in:
DBR (OpenERP) 2012-05-02 11:53:33 +05:30
commit 95d13c2088
36 changed files with 384 additions and 314 deletions

View File

@ -116,7 +116,7 @@
</record>
<menuitem id="menu_account_config" name="Accounting" parent="base.menu_config"
sequence="6" action="action_account_config"/>
sequence="14" action="action_account_config"/>
</data>
</openerp>

View File

@ -20,5 +20,6 @@
##############################################################################
import base_setup
import res_config
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -36,7 +36,7 @@ Shows you a list of applications features to install from.
'website': 'http://www.openerp.com',
'depends': ['base'],
'init_xml': [],
'update_xml': ['security/ir.model.access.csv', 'base_setup_views.xml' ],
'update_xml': ['security/ir.model.access.csv', 'base_setup_views.xml', 'res_config_view.xml'],
'demo_xml': [],
'installable': True,
'auto_install': True,

View File

@ -18,7 +18,6 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import pytz
import simplejson
import cgi
@ -75,61 +74,6 @@ class product_installer(osv.osv_memory):
if val.customers == 'import':
return {'type': 'ir.actions.act_window'}
# Define users preferences for new users (ir.values)
def _lang_get(self, cr, uid, context=None):
obj = self.pool.get('res.lang')
ids = obj.search(cr, uid, [('translatable','=',True)])
res = obj.read(cr, uid, ids, ['code', 'name'], context=context)
res = [(r['code'], r['name']) for r in res]
return res
def _tz_get(self,cr,uid, context=None):
return [(x, x) for x in pytz.all_timezones]
class user_preferences_config(osv.osv_memory):
_name = 'user.preferences.config'
_inherit = 'res.config'
_columns = {
'context_tz': fields.selection(_tz_get, 'Timezone', size=64,
help="Set default for new user's timezone, used to perform timezone conversions "
"between the server and the client."),
'context_lang': fields.selection(_lang_get, 'Language', required=True,
help="Sets default language for the all user interface, when UI "
"translations are available. If you want to Add new Language, you can add it from 'Load an Official Translation' wizard from 'Administration' menu."),
'view': fields.selection([('simple','Simplified'),
('extended','Extended')],
'Interface', required=True, help= "If you use OpenERP for the first time we strongly advise you to select the simplified interface, which has less features but is easier. You can always switch later from the user preferences." ),
'menu_tips': fields.boolean('Display Tips', help="Check out this box if you want to always display tips on each menu action"),
}
_defaults={
'view' : lambda self,cr,uid,*args: self.pool.get('res.users').browse(cr, uid, uid).view or 'simple',
'context_lang' : 'en_US',
'menu_tips' : True
}
def default_get(self, cr, uid, fields, context=None):
if context is None:
context = {}
res = super(user_preferences_config, self).default_get(cr, uid, fields, context=context)
res_default = self.pool.get('ir.values').get(cr, uid, 'default', False, ['res.users'])
for id, field, value in res_default:
res.update({field: value})
return res
def execute(self, cr, uid, ids, context=None):
user_obj = self.pool.get('res.users')
user_ids = user_obj.search(cr, uid, [], context=context)
for o in self.browse(cr, uid, ids, context=context):
user_obj.write(cr , uid, user_ids ,{'context_tz' : o.context_tz, 'context_lang' : o.context_lang, 'view' : o.view, 'menu_tips' : o.menu_tips}, context=context)
ir_values_obj = self.pool.get('ir.values')
ir_values_obj.set(cr, uid, 'default', False, 'context_tz', ['res.users'], o.context_tz)
ir_values_obj.set(cr, uid, 'default', False, 'context_lang', ['res.users'], o.context_lang)
ir_values_obj.set(cr, uid, 'default', False, 'view', ['res.users'], o.view)
ir_values_obj.set(cr, uid, 'default', False, 'menu_tips', ['res.users'], o.menu_tips)
return {}
# Specify Your Terminology
class specify_partner_terminology(osv.osv_memory):

View File

@ -1,69 +1,6 @@
<openerp>
<data>
<!-- Define default users preferences-->
<record id="view_user_preferences_config_form" model="ir.ui.view">
<field name="name">Set default users preferences</field>
<field name="model">user.preferences.config</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_view_base"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Define Users's Preferences</attribute>
</form>
<xpath expr="//separator[@string=&quot;title&quot;]" position="attributes">
<attribute name="string">Define Users's Preferences</attribute>
</xpath>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">This will set the default preferences for new users and update all existing ones. Afterwards, users are free to change those values on their own user preference form.</attribute>
</xpath>
<xpath expr="//separator[@string=&quot;vsep&quot;]" position="attributes">
<attribute name="string"/>
<attribute name="rowspan">12</attribute>
</xpath>
<group string="res_config_contents" position="replace">
<group colspan="4">
<field colspan="4" name="view"/>
<field colspan="4" name="context_lang"/>
<field colspan="4" name="context_tz"/>
<field colspan="4" name="menu_tips"/>
</group>
</group>
</data>
</field>
</record>
<record id="action_user_preferences_config_form" model="ir.actions.act_window">
<field name="name">Define default users preferences</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">user.preferences.config</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_user_preferences_config_form"/>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="config_action_user_preferences_config_form" model="ir.actions.todo">
<field name="action_id" ref="action_user_preferences_config_form"/>
<field name="category_id" ref="base.category_administration_config"/>
<field name="type">once</field>
</record>
<!-- Create Additional Users -->
<record id="action_config_access_other_user" model="ir.actions.act_window">
<field name="name">Create Additional Users</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.users</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" eval="False"/>
</record>
<record id="config_wizard_action_config_user_form" model="ir.actions.todo">
<field name="action_id" ref="action_config_access_other_user"/>
<field name="category_id" ref="base.category_administration_config"/>
<field name="sequence">1000</field>
</record>
<!-- Specify Your Terminology Config Wiz-->
<record id="base_setup_terminology_form" model="ir.ui.view">
<field name="name">Specify Your Terminology</field>
@ -110,23 +47,6 @@
</record>
-->
<!-- Company config -->
<record id="action_base_setup_company" model="ir.actions.act_window">
<field name="name">Set Company Header and Footer</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.company</field>
<field name="view_id" ref="base.view_company_form"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="context">{'res_id': user.company_id.id}</field>
<field name="help">Fill in your company data (address, logo, bank accounts) so that it's printed on your reports. You can click on the button 'Preview Header' in order to check the header/footer of PDF documents.</field>
</record>
<record id="base_setup_company_todo" model="ir.actions.todo">
<field name="action_id" ref="action_base_setup_company"/>
<field name="category_id" ref="base.category_administration_config"/>
<field name="sequence">1</field>
</record>
<record id="base.view_sale_config_settings" model="ir.ui.view">
<field name="name">sale settings</field>
<field name="model">sale.config.settings</field>

View File

@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Business Applications
# Copyright (C) 2004-2012 OpenERP S.A. (<http://openerp.com>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import osv, fields
class base_config_settings(osv.osv_memory):
_name = 'base.config.settings'
_inherit = 'res.config.settings'
_columns = {
'module_multi_company': fields.boolean('Multi Company',
help="""Work in multi-company environments, with appropriate security access between companies.
This installs the module multi_company."""),
'module_portal': fields.boolean('Portal',
help="""Define a portal for your customers or suppliers. The portal is a group of
external users that has specific access rights and rules.
This installs the module portal."""),
'module_share': fields.boolean('Share',
help="""Share OpenERP documents (records) with external users.
This installs the module share."""),
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,41 @@
<openerp>
<data>
<record id="view_general_configuration" model="ir.ui.view">
<field name="name">General Settings</field>
<field name="model">base.config.settings</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="General Settings" layout="manual">
<div class="oe_form_topbar">
<button string="Apply" type="object" name="execute"/>
<button string="Cancel" special="cancel"/>
</div>
<sheet layout="auto">
<separator string="Company Settings" colspan="4"/>
<field name="module_multi_company"/>
<separator string="Others" colspan="4"/>
<label string="Outgoing Mail Servers"/>
<button type="action" name="%(base.action_ir_mail_server_list)d"
string="Configure" icon="gtk-execute"/>
<newline/>
<field name="module_share"/>
<newline/>
<field name="module_portal"/>
</sheet>
</form>
</field>
</record>
<record id="action_general_configuration" model="ir.actions.act_window">
<field name="name">General Settings</field>
<field name="res_model">base.config.settings</field>
<field name="view_mode">form</field>
<field name="target">inline</field>
</record>
<menuitem id="menu_general_configuration" name="Settings" parent="base.menu_config"
sequence="100" action="action_general_configuration"/>
</data>
</openerp>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<menuitem id="synch_config" name="Synchronization" parent="base.menu_config" sequence="30"/>
<menuitem id="synch_config" name="Synchronization" parent="base.menu_config" sequence="60"/>
<record id="view_transfer_line_tree" model="ir.ui.view">
<field name="name">base.synchro.obj.line.tree</field>
<field name="model">base.synchro.obj.line</field>

View File

@ -26,12 +26,12 @@ class crm_configuration(osv.osv_memory):
_inherit = ['sale.config.settings', 'fetchmail.config.settings']
_columns = {
'module_crm_caldav': fields.boolean("Caldav Synchronization",
help="""Use protocol caldav to synchronize meetings with other calendar applications (like Sunbird).
This installs the module crm_caldav."""),
'fetchmail_lead': fields.boolean("Create Leads from Incoming Mails",
fetchmail_model='crm.lead', fetchmail_name='Incoming leads',
help="""Allows you to configure your incoming mail server, and create leads from incoming emails."""),
'module_crm_caldav': fields.boolean("Caldav Synchronization",
help="""Use protocol caldav to synchronize meetings with other calendar applications (like Sunbird).
This installs the module crm_caldav."""),
'lead_server': fields.char('Server', size=256),
'lead_port': fields.integer('Port'),
'lead_type': fields.selection([
@ -57,8 +57,4 @@ class crm_configuration(osv.osv_memory):
This installs the module google_map."""),
}
_defaults = {
'lead_type': 'pop',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -10,15 +10,9 @@
<field name="arch" type="xml">
<group name="config_fetchmail" position="after">
<field name="fetchmail_lead"/>
<group colspan="2" attrs="{'invisible': [('fetchmail_lead','=',False)]}">
<field name="lead_server" attrs="{'required': [('fetchmail_lead','=',True)]}"/>
<field name="lead_type" on_change="onchange_fetchmail('lead', lead_type, lead_is_ssl)" attrs="{'required': [('fetchmail_lead','=',True)]}"/>
<field name="lead_port" attrs="{'required': [('fetchmail_lead','=',True)]}"/>
<field name="lead_is_ssl" on_change="onchange_fetchmail('lead', lead_type, lead_is_ssl)"/>
<field name="lead_user" attrs="{'required': [('fetchmail_lead','=',True)]}"/>
<field name="lead_password" password="True" attrs="{'required': [('fetchmail_lead','=',True)]}"/>
<group colspan="2">
<button type="object" name="configure_fetchmail_lead" string="Configure" icon="gtk-execute"/>
</group>
<newline/>
</group>
<group name="config_crm" position="after">
@ -36,7 +30,8 @@
</field>
</record>
<menuitem id="base.menu_sale_config" name="Sales" parent="base.menu_config" sequence="1" action="base.action_sale_config"/>
<menuitem id="base.menu_sale_config" name="Sales" parent="base.menu_config"
sequence="1" action="base.action_sale_config"/>
</data>
</openerp>

View File

@ -26,21 +26,7 @@ class crm_claim_settings(osv.osv_memory):
_inherit = ['sale.config.settings', 'fetchmail.config.settings']
_columns = {
'fetchmail_claim': fields.boolean("Create claims from an email account",
fetchmail_model='crm.claim', fetchmail_name='Incoming claims',
'fetchmail_claim': fields.boolean("Create Claims from Incoming Mails", readonly=True,
fetchmail_model='crm.claim', fetchmail_name='Incoming Claims',
help="""Allows you to configure your incoming mail server, and create claims from incoming emails."""),
'claim_server' : fields.char('Server', size=256),
'claim_port' : fields.integer('Port'),
'claim_type': fields.selection([
('pop', 'POP Server'),
('imap', 'IMAP Server'),
('local', 'Local Server'),
], 'Type'),
'claim_is_ssl': fields.boolean('SSL/TLS', help="Connections are encrypted with SSL/TLS through a dedicated port (default: IMAPS=993, POP=995)"),
'claim_user' : fields.char('Username', size=256),
'claim_password' : fields.char('Password', size=1024),
}
_defaults = {
'claim_type': 'pop',
}

View File

@ -11,15 +11,9 @@
<field name="arch" type="xml">
<group name="config_fetchmail" position="after">
<field name="fetchmail_claim"/>
<group colspan="2" attrs="{'invisible': [('fetchmail_claim','=',False)]}">
<field name="claim_server" attrs="{'required': [('fetchmail_claim','=',True)]}"/>
<field name="claim_type" on_change="onchange_fetchmail('claim', claim_type, claim_is_ssl)" attrs="{'required': [('fetchmail_claim','=',True)]}"/>
<field name="claim_port" attrs="{'required': [('fetchmail_claim','=',True)]}"/>
<field name="claim_is_ssl" on_change="onchange_fetchmail('claim', claim_type, claim_is_ssl)"/>
<field name="claim_user" attrs="{'required': [('fetchmail_claim','=',True)]}"/>
<field name="claim_password" password="True" attrs="{'required': [('fetchmail_claim','=',True)]}"/>
<group colspan="2">
<button type="object" name="configure_fetchmail_claim" string="Configure" icon="gtk-execute"/>
</group>
<newline/>
</group>
</field>
</record>

View File

@ -18,8 +18,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import ftpserver
import wizard
import res_config
post_load = ftpserver.start_server

View File

@ -40,7 +40,8 @@ FTP client.
'update_xml': [
'wizard/ftp_configuration_view.xml',
'wizard/ftp_browse_view.xml',
'security/ir.model.access.csv'
'security/ir.model.access.csv',
'res_config_view.xml',
],
'demo_xml': [],
'test': [

View File

@ -0,0 +1,37 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Business Applications
# Copyright (C) 2004-2012 OpenERP S.A. (<http://openerp.com>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import fields, osv
from tools import config
class documnet_ftp_setting(osv.osv_memory):
_name = 'knowledge.config.settings'
_inherit = 'knowledge.config.settings'
_columns = {
'document_ftp_url': fields.char('Browse Documents', size=128,
help ="""Click the url to browse the documents""", readonly=True),
}
def get_default_ftp_config(self, cr, uid, fields, context=None):
action = self.pool.get('ir.model.data').get_object(cr, uid, 'document_ftp', 'action_document_browse')
return {'document_ftp_url': action.url}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,15 @@
<openerp>
<data>
<record id="view_document_ftp_configuration" model="ir.ui.view">
<field name="name">Knowledge Application</field>
<field name="model">knowledge.config.settings</field>
<field name="type">form</field>
<field name="inherit_id" ref="base_setup.view_knowledge_configuration"/>
<field name="arch" type="xml">
<field name="module_document_ftp" position="after">
<field name="document_ftp_url" widget="url"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@ -25,99 +25,72 @@ class fetchmail_config_settings(osv.osv_memory):
""" This wizard can be inherited in conjunction with 'res.config.settings', in order to
define fields that configure a fetchmail server.
It relies on the following convention on a set of fields::
It relies on the following convention on the object::
class my_config_wizard(osv.osv_memory):
class my_config_settings(osv.osv_memory):
_name = 'my.settings'
_inherits = ['res.config.settings', 'fetchmail.config.settings']
_inherit = ['res.config.settings', 'fetchmail.config.settings']
_columns = {
'fetchmail_X': fields.boolean(..., fetchmail_model='my.model', fetchmail_name='Blah'),
'X_server': fields.char('Server Name', size=256),
'X_port': fields.integer('Port'),
'X_type': fields.selection(
[('pop', 'POP Server'), ('imap', 'IMAP Server'), ('local', 'Local Server')],
'Server Type'),
'X_is_ssl': fields.boolean('SSL/TLS'),
'X_user': fields.char('Username', size=256),
'X_password': fields.char('Password', size=1024),
'fetchmail_stuff': fields.boolean(..., readonly=True,
fetchmail_model='my.stuff', fetchmail_name='Incoming Stuff'),
}
The method ``get_default_fetchmail_servers`` retrieves the current fetchmail configuration
for all fields that start with 'fetchmail_'. It looks up configurations that match the
given model name (``fetchmail_model``). The method ``set_fetchmail_servers`` updates the
fetchmail configurations by following the same conventions. Both methods are called
automatically by the methods of the model 'res.config.settings'.
def configure_fetchmail_stuff(self, cr, uid, ids, context=None):
return self.configure_fetchmail(cr, uid, 'fetchmail_stuff', context)
The onchange method ``onchange_fetchmail`` can be used to react on changes on the fields
'X_type' and 'X_is_ssl'. Its first parameter is the fields' prefix (here 'X').
and in the form view::
<field name="fetchmail_stuff"/>
<button type="object" name="configure_fetchmail_stuff"/>
The method ``get_default_fetchmail`` determines the value of all fields that start
with 'fetchmail_'. It looks up fetchmail server configurations that match the given
model name (``fetchmail_model``) and are active.
The button action ``configure_fetchmail_stuff`` is caught by the object, and calls
automatically the method ``configure_fetchmail``; it opens the fetchmail server
configuration form for the corresponding field.
"""
_name = 'fetchmail.config.settings'
def get_default_fetchmail_servers(self, cr, uid, fields, context=None):
def get_default_fetchmail(self, cr, uid, fields, context=None):
""" determine the value of all fields like 'fetchmail_XXX' """
ir_model = self.pool.get('ir.model')
fetchmail_server = self.pool.get('fetchmail.server')
fetchmail_fields = [f for f in self._columns if f.startswith('fetchmail_')]
fetchmail_fields = [f for f in fields if f.startswith('fetchmail_')]
res = {}
for field in fetchmail_fields:
model_name = self._columns[field].fetchmail_model
for f in fetchmail_fields:
model_name = self._columns[f].fetchmail_model
model_id = ir_model.search(cr, uid, [('model', '=', model_name)])[0]
server_ids = fetchmail_server.search(cr, uid, [('object_id', '=', model_id), ('state', '=', 'done')])
if server_ids:
server = fetchmail_server.browse(cr, uid, server_ids[0], context)
prefix = field[10:]
res.update({
field: True,
prefix + '_server': server.server,
prefix + '_port': server.port,
prefix + '_type': server.type,
prefix + '_is_ssl': server.is_ssl,
prefix + '_user': server.user,
prefix + '_password': server.password,
})
res[f] = bool(server_ids)
return res
def set_fetchmail_servers(self, cr, uid, ids, context):
ir_model = self.pool.get('ir.model')
fetchmail_server = self.pool.get('fetchmail.server')
fetchmail_fields = [f for f in self._columns if f.startswith('fetchmail_')]
config = self.browse(cr, uid, ids[0], context)
for field in fetchmail_fields:
model_name = self._columns[field].fetchmail_model
model_id = ir_model.search(cr, uid, [('model', '=', model_name)])[0]
server_ids = fetchmail_server.search(cr, uid, [('object_id', '=', model_id), ('state', '=', 'done')])
if config[field]:
prefix = field[10:]
values = {
'server': config[prefix + '_server'],
'port': config[prefix + '_port'],
'type': config[prefix + '_type'],
'is_ssl': config[prefix + '_is_ssl'],
'user': config[prefix + '_user'],
'password': config[prefix + '_password'],
}
if not server_ids:
values.update({
'name': getattr(self._columns[field], 'fetchmail_name', model_name),
'object_id': model_id,
})
server_ids = [fetchmail_server.create(cr, uid, values, context=context)]
else:
server_ids = fetchmail_server.search(cr, uid, [('object_id', '=', model_id)], context=context)
fetchmail_server.write(cr, uid, server_ids, values, context=context)
fetchmail_server.button_confirm_login(cr, uid, server_ids, context)
else:
fetchmail_server.set_draft(cr, uid, server_ids, context)
def onchange_fetchmail(self, cr, uid, ids, prefix, server_type, ssl, context=None):
values = {}
if server_type == 'pop':
values[prefix + '_port'] = ssl and 995 or 110
elif server_type == 'imap':
values[prefix + '_port'] = ssl and 993 or 143
def configure_fetchmail(self, cr, uid, field, context=None):
""" open the form view of the fetchmail.server to configure """
action = {
'type': 'ir.actions.act_window',
'res_model': 'fetchmail.server',
'view_mode': 'form',
}
model_name = self._columns[field].fetchmail_model
model_id = self.pool.get('ir.model').search(cr, uid, [('model', '=', model_name)])[0]
server_ids = self.pool.get('fetchmail.server').search(cr, uid, [('object_id', '=', model_id)])
if server_ids:
action['res_id'] = server_ids[0]
else:
values[prefix + '_server'] = False
values[prefix + '_port'] = 0
return {'value': values}
action['context'] = {
'default_name': self._columns[field].fetchmail_name,
'default_object_id': model_id,
}
return action
def __getattr__(self, name):
""" catch calls to 'configure_fetchmail_XXX' """
if name.startswith('configure_fetchmail_'):
return (lambda cr, uid, ids, context=None:
self.configure_fetchmail(cr, uid, name[10:], context))
return super(fetchmail_config_settings, self).__getattr__(name)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -49,7 +49,8 @@
<field name="target">inline</field>
</record>
<menuitem id="menu_human_resources_configuration" name="Human Resources" parent="base.menu_config" sequence="8" action="action_human_resources_configuration"/>
<menuitem id="menu_human_resources_configuration" name="Human Resources" parent="base.menu_config"
sequence="15" action="action_human_resources_configuration"/>
</data>
</openerp>

View File

@ -29,24 +29,9 @@ class hr_applicant_settings(osv.osv_memory):
'module_document_ftp': fields.boolean('Index & Track Documents',
help="""Manage your CV's and motivation letter related to all applicants.
This installs the module document_ftp."""),
'fetchmail_applicants': fields.boolean('Create Applicants from an Email Account',
'fetchmail_applicants': fields.boolean('Create Applicants from Incoming Mails', readonly=True,
fetchmail_model='hr.applicant', fetchmail_name='Incoming HR Applications',
help ="""Allow applicants to send their job application to an email address (jobs@mycompany.com),
and create automatically application documents in the system."""),
'applicants_server': fields.char('Server', size=256),
'applicants_port': fields.integer('Port'),
'applicants_type': fields.selection([
('pop', 'POP Server'),
('imap', 'IMAP Server'),
('local', 'Local Server'),
], 'Type'),
'applicants_is_ssl': fields.boolean('SSL/TLS',
help="Connections are encrypted with SSL/TLS through a dedicated port (default: IMAPS=993, POP=995)"),
'applicants_user': fields.char('Username', size=256),
'applicants_password': fields.char('Password', size=1024),
}
_defaults = {
'applicants_type': 'pop',
}

View File

@ -12,16 +12,9 @@
<field name="module_document_ftp"/>
<newline/>
<field name="fetchmail_applicants"/>
<group colspan="2" attrs="{'invisible': [('fetchmail_applicants','=',False)]}">
<field name="applicants_server" attrs="{'required': [('fetchmail_applicants','=',True)]}"/>
<field name="applicants_type" attrs="{'required': [('fetchmail_applicants','=',True)]}"
on_change="onchange_fetchmail('applicants', applicants_type, applicants_is_ssl)"/>
<field name="applicants_port" attrs="{'required': [('fetchmail_applicants','=',True)]}"/>
<field name="applicants_is_ssl" attrs="{'required': [('fetchmail_applicants','=',True)]}"
on_change="onchange_fetchmail('applicants', applicants_type, applicants_is_ssl)"/>
<field name="applicants_user" attrs="{'required': [('fetchmail_applicants','=',True)]}"/>
<field name="applicants_password" password="True" attrs="{'required': [('fetchmail_applicants','=',True)]}"/>
</group>
<group colspan="2">
<button type="object" name="configure_fetchmail_applicants" string="Configure" icon="gtk-execute"/>
</group>
</group>
</field>
</record>

View File

@ -19,5 +19,6 @@
#
##############################################################################
import res_config
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -40,6 +40,7 @@ document and Wiki based Hidden.
'security/knowledge_security.xml',
'security/ir.model.access.csv',
'knowledge_view.xml',
'res_config_view.xml',
],
'demo_xml': ['knowledge_demo.xml'],
'installable': True,

View File

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Business Applications
# Copyright (C) 2004-2012 OpenERP S.A. (<http://openerp.com>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import osv, fields
class knowledge_config_settings(osv.osv_memory):
_name = 'knowledge.config.settings'
_inherit = 'res.config.settings'
_columns = {
'module_wiki_faq': fields.boolean('Use a Wiki for Frequently Asked Questions',
help="""This installs the module wiki_faq."""),
'module_wiki_quality_manual': fields.boolean('Track Quality with a Wiki',
help="""This installs the module wiki_quality_manual."""),
'module_document': fields.boolean('Document Management',
help="""This is a complete document management system, with: user authentication,
full document search (but pptx and docx are not supported), and a document dashboard.
This installs the module document."""),
'module_document_ftp': fields.boolean('Share repositories (FTP)',
help="""Access your documents in OpenERP through an FTP interface.
This installs the module document_ftp."""),
'module_document_webdav': fields.boolean('Share Repositories (WebDAV)',
help="""Access your documents in OpenERP through WebDAV.
This installs the module document_webdav."""),
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,41 @@
<openerp>
<data>
<record id="view_knowledge_configuration" model="ir.ui.view">
<field name="name">Configure Knowledge</field>
<field name="model">knowledge.config.settings</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Configure Knowledge" layout="manual">
<div class="oe_form_topbar">
<button string="Apply" type="object" name="execute"/>
<button string="Cancel" special="cancel"/>
</div>
<sheet layout="auto">
<separator string="Wiki" colspan="4"/>
<field name="module_wiki_faq"/>
<newline/>
<field name="module_wiki_quality_manual"/>
<separator string="Documents" colspan="4"/>
<field name="module_document"/>
<newline/>
<field name="module_document_ftp"/>
<newline/>
<field name="module_document_webdav"/>
</sheet>
</form>
</field>
</record>
<record id="action_knowledge_configuration" model="ir.actions.act_window">
<field name="name">Configure Knowledge</field>
<field name="res_model">knowledge.config.settings</field>
<field name="view_mode">form</field>
<field name="target">inline</field>
</record>
<menuitem id="menu_knowledge_configuration" name="Knowledge" parent="base.menu_config"
sequence="19" action="action_knowledge_configuration"/>
</data>
</openerp>

View File

@ -19,6 +19,6 @@
#
##############################################################################
import res_config
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -38,7 +38,8 @@ Contains the installer for marketing-related modules.
'update_xml': [
'security/marketing_security.xml',
'security/ir.model.access.csv',
'marketing_view.xml'
'marketing_view.xml',
'res_config_view.xml',
],
'demo_xml': ['marketing_demo.xml'],
'installable': True,

View File

@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Business Applications
# Copyright (C) 2004-2012 OpenERP S.A. (<http://openerp.com>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import fields, osv
class marketing_config_settings(osv.osv_memory):
_name = 'marketing.config.settings'
_inherit = 'res.config.settings'
_columns = {
'module_marketing_campaign': fields.boolean('Marketing Campaigns',
help="""Provides leads automation through marketing campaigns.
Campaigns can in fact be defined on any resource, not just CRM leads.
This installs the module marketing_campaign."""),
'module_marketing_campaign_crm_demo': fields.boolean('Demo Data for Marketing Campaigns',
help="""Installs demo data like leads, campaigns and segments for Marketing Campaigns.
This installs the module marketing_campaign_crm_demo."""),
'module_crm_profiling': fields.boolean('Track Customer Profile to Focus your Campaigns',
help="""Allows users to perform segmentation within partners.
This installs the module crm_profiling."""),
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,36 @@
<openerp>
<data>
<record id="view_marketing_configuration" model="ir.ui.view">
<field name="name">Configure Marketing</field>
<field name="model">marketing.config.settings</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Configure Marketing" layout="manual">
<div class="oe_form_topbar">
<button string="Apply" type="object" name="execute"/>
<button string="Cancel" special="cancel"/>
</div>
<sheet layout="auto">
<separator string="Campaigns" colspan="4"/>
<field name="module_marketing_campaign"/>
<field name="module_marketing_campaign_crm_demo"/>
<newline/>
<field name="module_crm_profiling"/>
</sheet>
</form>
</field>
</record>
<record id="action_marketing_configuration" model="ir.actions.act_window">
<field name="name">Configure Marketing</field>
<field name="res_model">marketing.config.settings</field>
<field name="view_mode">form</field>
<field name="target">inline</field>
</record>
<menuitem id="menu_marketing_configuration" name="Marketing" parent="base.menu_config"
sequence="17" action="action_marketing_configuration"/>
</data>
</openerp>

View File

@ -38,7 +38,7 @@
</record>
<menuitem id="base.menu_mrp_config" name="Manufacturing" parent="base.menu_config"
sequence="4" action="action_mrp_configuration"/>
sequence="8" action="action_mrp_configuration"/>
</data>
</openerp>

View File

@ -107,7 +107,7 @@
<field name="price_extra" groups="product.group_product_variant"/>
</group>
<group colspan="2" col="2">
<group colspan="2" col="2" groups="product.group_stock_packaging">
<separator string="Weights" colspan="2"/>
<field digits="(14, 3)" name="volume" attrs="{'readonly':[('type','=','service')]}"/>
<field name="weight" attrs="{'readonly':[('type','=','service')]}"/>

View File

@ -39,7 +39,7 @@
</record>
<menuitem id="base.menu_project_config" name="Project" parent="base.menu_config"
sequence="5" action="action_config_settings"/>
sequence="10" action="action_config_settings"/>
</data>
</openerp>

View File

@ -26,21 +26,7 @@ class project_issue_settings(osv.osv_memory):
_inherit = ['project.config.settings', 'fetchmail.config.settings']
_columns = {
'fetchmail_issue': fields.boolean("Create issues from Incoming Mails",
fetchmail_model='project.issue', fetchmail_name='Incoming issues',
'fetchmail_issue': fields.boolean("Create Issues from Incoming Mails", readonly=True,
fetchmail_model='project.issue', fetchmail_name='Incoming Issues',
help="""Allows you to configure your incoming mail server, and create issues from incoming emails."""),
'issue_server' : fields.char('Server', size=256),
'issue_port' : fields.integer('Port'),
'issue_type': fields.selection([
('pop', 'POP Server'),
('imap', 'IMAP Server'),
('local', 'Local Server'),
], 'Type'),
'issue_is_ssl': fields.boolean('SSL/TLS', help="Connections are encrypted with SSL/TLS through a dedicated port (default: IMAPS=993, POP=995)"),
'issue_user' : fields.char('Username', size=256),
'issue_password' : fields.char('Password', size=1024),
}
_defaults = {
'issue_type': 'pop',
}

View File

@ -10,13 +10,8 @@
<field name="arch" type="xml">
<group name="support" position="after">
<field name="fetchmail_issue"/>
<group colspan="2" attrs="{'invisible': [('fetchmail_issue','=',False)]}">
<field name="issue_server" attrs="{'required': [('fetchmail_issue','=',True)]}"/>
<field name="issue_type" on_change="onchange_fetchmail('issue', issue_type, issue_is_ssl)" attrs="{'required': [('fetchmail_issue','=',True)]}"/>
<field name="issue_port" attrs="{'required': [('fetchmail_issue','=',True)]}"/>
<field name="issue_is_ssl" on_change="onchange_fetchmail('issue', issue_type, issue_is_ssl)"/>
<field name="issue_user" attrs="{'required': [('fetchmail_issue','=',True)]}"/>
<field name="issue_password" password="True" attrs="{'required': [('fetchmail_issue','=',True)]}"/>
<group colspan="2">
<button type="object" name="configure_fetchmail_issue" string="Configure" icon="gtk-execute"/>
</group>
</group>
</field>

View File

@ -39,7 +39,7 @@
</record>
<menuitem id="menu_purchase_config" name="Purchases" parent="base.menu_config"
sequence="2" action="action_purchase_configuration"/>
sequence="3" action="action_purchase_configuration"/>
<record id="view_account_config" model="ir.ui.view">
<field name="name">account settings</field>

View File

@ -43,7 +43,8 @@
</field>
</record>
<menuitem id="base.menu_sale_config" name="Sales" parent="base.menu_config" sequence="1" action="base.action_sale_config"/>
<menuitem id="base.menu_sale_config" name="Sales" parent="base.menu_config"
sequence="1" action="base.action_sale_config"/>
<record id="view_account_config" model="ir.ui.view">
<field name="name">account settings</field>

View File

@ -48,7 +48,7 @@
</record>
<menuitem id="menu_stock_config_settings" name="Warehouse" parent="base.menu_config"
sequence="3" action="action_stock_config_settings"/>
sequence="5" action="action_stock_config_settings"/>
</data>
</openerp>