Code Monkey home page Code Monkey logo

server-tools's Introduction

Runboat Pre-commit Status Build Status codecov Translation Status

server-tools

TODO: add repo description.

Available addons

addon version maintainers summary
attachment_queue 16.0.1.2.0 florian-dacosta sebastienbeau Base module adding the concept of queue for processing files
attachment_synchronize 16.0.1.0.1 florian-dacosta sebastienbeau GSLabIt bealdav Attachment Synchronize
attachment_unindex_content 16.0.1.0.0 moylop260 ebirbe luisg123v Disable indexing of attachments
auditlog 16.0.2.1.0 Audit Log
auto_backup 16.0.1.0.0 Backups database
autovacuum_message_attachment 16.0.1.0.1 florian-dacosta Automatically delete old mail messages and attachments
base_changeset 16.0.1.0.0 astirpe Track record changesets
base_cron_exclusion 16.0.1.0.0 LoisRForgeFlow ChrisOForgeFlow Allow you to select scheduled actions that should not run simultaneously.
base_domain_inverse_function 16.0.1.0.0 grindtildeath Provide function to inverse domain into parts
base_exception 16.0.2.0.1 hparfr sebastienbeau This module provide an abstract model to manage customizable exceptions to be applied on different models (sale order, invoice, ...)
base_fontawesome 16.0.6.6.1 Up to date Fontawesome resources.
base_force_record_noupdate 16.0.1.0.0 Manually force noupdate=True on models
base_m2m_custom_field 16.0.1.0.0 Customizations of Many2many
base_name_search_improved 16.0.1.0.1 Friendlier search when typing in relation fields
base_partition 16.0.1.0.0 Base module that provide the partition method on all models
base_remote 16.0.1.0.0 Remote Base
base_search_fuzzy 16.0.1.0.0 Fuzzy search with the PostgreSQL trigram extension
base_sequence_default 16.0.1.0.2 Shide yajo rafaelbn Use sequences for default values of fields when creating a new record
base_sequence_option 16.0.1.0.1 kittiu Alternative sequence options for specific models
base_sparse_field_list_support 16.0.1.0.0 add list support to convert_to_cache()
base_technical_user 16.0.1.0.0 Add a technical user parameter on the company
base_time_window 16.0.1.0.0 Base model to handle time windows
base_view_inheritance_extension 16.0.1.2.1 Adds more operators for view inheritance
bus_alt_connection 16.0.1.0.0 Needed when using PgBouncer as a connection pooler
cron_daylight_saving_time_resistant 16.0.1.0.1 florian-dacosta Run cron on fixed hours
database_cleanup 16.0.1.2.0 Database cleanup
datetime_formatter 16.0.1.0.0 Helper functions to give correct format to date[time] fields
dbfilter_from_header 16.0.1.0.1 Filter databases with HTTP headers
excel_import_export 16.0.1.1.0 kittiu Base module for developing Excel import/export/report
excel_import_export_demo 16.0.1.0.1 kittiu Excel Import/Export/Report Demo
excel_import_export_unidecode 16.0.1.0.1 Add unidecode option to excel import/export/report
fetchmail_attach_from_folder 16.0.1.1.0 NL66278 Attach mails in an IMAP folder to existing objects
html_text 16.0.1.0.1 Generate excerpts from any HTML field
iap_alternative_provider 16.0.1.0.0 sebastienbeau Base module for providing alternative provider for iap apps
jsonifier 16.0.0.0.1 JSON-ify data for all models
module_analysis 16.0.1.0.1 legalsylvain Add analysis tools regarding installed modules to know which installed modules comes from Odoo Core, OCA, or are custom modules
module_auto_update 16.0.1.0.2 Automatically update Odoo modules
module_change_auto_install 16.0.1.0.2 legalsylvain Customize auto installables modules by configuration
onchange_helper 16.0.1.0.0 Technical module that ease execution of onchange in Python code
rpc_helper 16.0.1.0.0 simahawk Helpers for disabling RPC calls
scheduler_error_mailer 16.0.1.0.0 Scheduler Error Mailer
sentry 16.0.3.0.2 barsi naglis versada moylop260 fernandahf Report Odoo errors to Sentry
server_action_logging 16.0.1.0.0 Module that provides a logging mechanism for server actions
session_db 16.0.1.0.5 sbidoul Store sessions in DB
tracking_manager 16.0.1.1.0 Kev-Roche sebastienbeau This module tracks all fields of a model, including one2many and many2many ones.
upgrade_analysis 16.0.1.0.2 StefanRijnhart legalsylvain Performs a difference analysis between modules installed on two different Odoo instances
url_attachment_search_fuzzy 16.0.1.0.0 mariadforgelow Fuzzy Search of URL in Attachments

Licenses

This repository is licensed under AGPL-3.0.

However, each module can have a totally different license, as long as they adhere to Odoo Community Association (OCA) policy. Consult each module's __manifest__.py file, which contains a license key that explains its license.


OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

server-tools's People

Contributors

bealdav avatar clementmbr avatar etobella avatar extrememicro avatar florian-dacosta avatar grindtildeath avatar hbrunn avatar ibuioli avatar ivantodorovich avatar ivorra78 avatar jjscarafia avatar kevinkhao avatar kittiu avatar legalsylvain avatar liweijie0812 avatar lmignon avatar miquelrforgeflow avatar mymage avatar nl66278 avatar oca-git-bot avatar oca-transbot avatar oca-travis avatar santostelmo avatar sbidoul avatar sebalix avatar sebastienbeau avatar simahawk avatar stefanrijnhart avatar weblate avatar yajo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

server-tools's Issues

Error Message

Using the scheduler error mail, how can we get the error message to add it in mail template.

Tracking all the modules using audit logs gives error

I want to track all the user operations irrespective of the module, whatever the module is. I selected object as 'ir.model' when defining the rule but it doesn't track anything in the logs.

Is there a way to handle this or needs to be fixed?

Regards,
Maddy.

[ROADMAP] Module prototyper

Backlog

  • Fix icon file extension
  • Fix copying existing models and fields by prefixing new models and fields with x_
  • Security files (rules, ir.model.access.csv)
  • Add an action on the list view to export many modules in the same zip file
  • Attach images to the prototype and export them to be used in the 'images' module manifest
  • Provide links on the prototype to easily access Models, Fields, Views, Menu Items, Groups, Access Rights, Security Rules, Workflows, Reports
  • Add a Report tab to select and export reports
  • Add a Workflow tab to select and export workflows, nodes, transitions, actions
  • Add a Website tab to select Menu Item and Pages
  • Include controllers.py and templates.xml from scaffold

Private suggestion by @blaggacao

Odoo scaffolding already constructs a basic template for a web interface in the controllers.py and the templates.xml in the sci/templates/default folder...

I think maybe it would be good practice to include such templates into the prototype module, even if they only have limited significance (like the listing of objects and fields in the offical templates). It would help to make people aware of the possibility to have some front-end part for a module...

  • Allow export of attachments with data

We would like to export files attached to document pages (images for example, see OCA/knowledge#39), so that when we install the exported module, we have the document page content and its attachments.

Migration to version 8

Todo

https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-8

Modules to migrate

  • auth_admin_passkey
  • auth_from_http_basic
  • auth_from_http_basic_logout
  • base_external_dbsource by @Lauris-v in #41
  • base_optional_quick_create
  • configuration_helper
  • cron_run_manually
  • database_cleanup
  • dbfilter_from_header
  • defer_parent_store_computation_import
  • disable_openerp_online
  • document_export_from_db
  • email_template_dateutil
  • email_template_template
  • fetchmail_attach_from_folder
  • import_odbc by @Lauris-v in #41
  • mail_environment
  • mass_editing
  • module_parent_dependencies
  • scheduler_error_mailer
  • sentry_logger
  • server_environment
  • server_environment_files
  • sql_export #351
  • super_calendar by @alejandrosantana in #139
  • tree_view_record_id
  • users_ldap_groups
  • users_ldap_mail
  • users_ldap_populate
  • web_context_tunnel

Obsolete and deprecated modules

Supacalendar ist not able to handle recurrency meetings

When i track calendar.event and configure recurrent meeting the server says:

Traceback (most recent call last):
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 574, in dispatch
result = self._call_function(*_self.params)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 310, in _call_function
return checked_call(self.db, *args, *_kwargs)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 307, in checked_call
return self.endpoint(_a, *_kw)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 803, in call
return self.method(_args, *_kw)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/http.py", line 403, in response_wrap
response = f(_args, *_kw)
File "/opt/odoo/odoo8/opt/addons/web/controllers/main.py", line 948, in call_button
action = self._call_kw(model, method, args, {})
File "/opt/odoo/odoo8/opt/addons/web/controllers/main.py", line 936, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, _args, *_kwargs)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 363, in old_api
result = method(recs, _args, *_kwargs)
File "/opt/odoo/odoo8/opt/server-tools/super_calendar/models/super_calendar_configurator.py", line 75, in generate_calendar_records
configurator._generate_record_from_line(line)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo8/opt/server-tools/super_calendar/models/super_calendar_configurator.py", line 89, in _generate_record_from_line
super_calendar_pool.create(values[record])
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/models.py", line 4076, in create
record = self.browse(self._create(old_vals))
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 463, in new_api
result = method(self._model, cr, uid, _args, *_kwargs)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/models.py", line 4196, in _create
self._check_selection_field_value(cr, user, field, vals[field], context=context)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/api.py", line 336, in old_api
result = method(recs, _args, *_kwargs)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/models.py", line 2256, in _check_selection_field_value
field.convert_to_cache(value, self)
File "/opt/odoo/odoo8/local/lib/python2.7/site-packages/odoo-8.0-py2.7.egg/openerp/fields.py", line 1426, in convert_to_cache
return record.env[res_model].browse(int(res_id))
ValueError: invalid literal for int() with base 10: '14-20151110120000'

New improvement on super_calendar (partner, product, analytic)

Hi,

After migration of this module super_calendar, we plan to add some new features.

We hesitate to add customizing features, but estimated work too huge for actual budget on this project and larger than the end customer expected.

So, we plan to add 3 references with 3 new modules with depends on super_calendar :

  • partner,
  • product,
  • analytic

Each of them will add :

  • info in form view
  • group_by in tree view
  • search in tree and calendar view

If you plan to do it or know matched features, please share.
If not, we are going to do it in next weeks... ;-)

[auth_admin_passkey] allow to use database password to log in

Hello,

auth_admin_passkey rocks. But sometimes we the ERP operators don't know the encrypted admin password and it would not be a good thing this password to be sent between ERP admin and system integrator when it is changed as it might be leaked...

We also need to limit the number of secrets that may represent a security risk if they are leaked.

Now if the database server has a password set, then the ERP operator will know it and this password is already enough to compromise all the ERP data if it's used by the operator in a malicious way.

That's why I propose that this database password could be used by the ERP operator in place of the admin password. I mean both passwords would be valid and allow connecting as any user.

If you agree I can make the PR (and port this to v9). Deal accepted?
What do you think @legalsylvain ?

fetchmail_attach_from_folder: command CLOSE illegal in state AUTH, only allowed in states SELECTED

Here is a traceback I got with the fetchmail_attach_from_folder installed when I clicked on the "Test & Confirm" button on a fetchmail (IMAP + SSL) server.

Traceback (most recent call last):
  File "/srv/openerp/parts/server/openerp/http.py", line 530, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/srv/openerp/parts/server/openerp/http.py", line 567, in dispatch
    result = self._call_function(**self.params)
  File "/srv/openerp/parts/server/openerp/http.py", line 303, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/srv/openerp/parts/server/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/srv/openerp/parts/server/openerp/http.py", line 300, in checked_call
    return self.endpoint(*a, **kw)
  File "/srv/openerp/parts/server/openerp/http.py", line 796, in __call__
    return self.method(*args, **kw)
  File "/srv/openerp/parts/server/openerp/http.py", line 396, in response_wrap
    response = f(*args, **kw)
  File "/srv/openerp/parts/server/addons/web/controllers/main.py", line 939, in call_button
    action = self._call_kw(model, method, args, {})
  File "/srv/openerp/parts/server/addons/web/controllers/main.py", line 927, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/srv/openerp/parts/server/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/srv/openerp/parts/server-tools/fetchmail_attach_from_folder/model/fetchmail_server.py", line 72, in fetch_mail
    connection.close()
  File "/usr/lib/python2.7/imaplib.py", line 382, in close
    typ, dat = self._simple_command('CLOSE')
  File "/usr/lib/python2.7/imaplib.py", line 1070, in _simple_command
    return self._command_complete(name, self._command(name, *args))
  File "/usr/lib/python2.7/imaplib.py", line 825, in _command
    ', '.join(Commands[name])))
error: command CLOSE illegal in state AUTH, only allowed in states SELECTED

I didn't investigated further because I didn't planned to use the module: it got installed automatically (fixed now in #156).

Error, when human resources manager edit employer

module: auditlog
version: 8.0

Steps to reproduce

  • Created new rule: for hr.employee models and checked write, unlink and create.
  • Administrator user subscribe in this rules.
  • Other user with Manager in human resources update any employeer and save. And show the error.

Current behavior

This is log:

Traceback (most recent call last):
File "/opt/odoo/odoo/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo/openerp/http.py", line 574, in dispatch
result = self._call_function(*_self.params)
File "/opt/odoo/odoo/openerp/http.py", line 310, in _call_function
return checked_call(self.db, *args, *_kwargs)
File "/opt/odoo/odoo/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/http.py", line 307, in checked_call
return self.endpoint(_a, *_kw)
File "/opt/odoo/odoo/openerp/http.py", line 803, in call
return self.method(_args, *_kw)
File "/opt/odoo/odoo/openerp/http.py", line 403, in response_wrap
response = f(_args, *_kw)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 948, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 940, in _call_kw
return checked_call(request.db, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 939, in checked_call
return getattr(request.registry.get(model), method)(request.cr, request.uid, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 363, in old_api
result = method(recs, _args, *_kwargs)
File "/opt/odoo/oca/auditlog/models/rule.py", line 275, in write
(d['id'], d) for d in self.sudo().read(list(self._fields)))

File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/models.py", line 3178, in read
self._read_from_database(stored, inherited)
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/models.py", line 3373, in _read_from_database
record._cache.update(record._convert_to_cache(vals, validate=False))
File "/opt/odoo/odoo/openerp/models.py", line 5343, in _convert_to_cache
for name, value in values.iteritems()
File "/opt/odoo/odoo/openerp/models.py", line 5344, in
if name in fields
File "/opt/odoo/odoo/openerp/fields.py", line 1086, in convert_to_cache
value = float(value or 0.0)
TypeError: float() argument must be a string or a number

Expected behavior

  • The human resources Manager can edit the employeers

[7.0][mass_editing] TypeError: 'int' object has no attribute '__getitem__'

Steps to reproduce issue:
templates - openerp - mass editing bug al elegir campos

Error:

Server Traceback (most recent call last):
  File "/server/openerp/addons/web/session.py", line 89, in send
    return openerp.netsvc.dispatch_rpc(service_name, method, args)
  File "/server/openerp/netsvc.py", line 296, in dispatch_rpc
    result = ExportService.getService(service_name).dispatch(method, params)
  File "/server/openerp/service/web_services.py", line 626, in dispatch
    res = fn(db, uid, *params)
  File "/server/openerp/osv/osv.py", line 190, in execute_kw
    return self.execute(db, uid, obj, method, *args, **kw or {})
  File "/server/openerp/osv/osv.py", line 132, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/server/openerp/osv/osv.py", line 199, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/server/openerp/addons/audittrail/audittrail.py", line 532, in execute_cr
    return fct_src(cr, uid, model, method, *args, **kw)
  File "/server/openerp/osv/osv.py", line 187, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/server/openerp/addons/mass_editing/mass_editing.py", line 38, in search
    'model_id', 'in', map(int, domain[2][1:-1].split(',')))]
TypeError: 'int' object has no attribute '__getitem__'

I expected a view with fields view.

Module to manage user roles

Hi,

As a standard group is a notion a bit too technical sometimes, we developed a module to manage functional roles. A role is just an aggregation of groups. It helps us to manage a lot of user accounts over time without dealing with a collection of technical groups or "user template" account to duplicate when we need to create a new one (not really maintainable).
The code and description is hosted here: https://github.com/osiell/base_user_role/

I have not encountered similar modules, so I'm asking:

  • is this module irrelevant? (we're missing a point or something within the standard functionalities)
  • if not, is it interesting to maintain it in OCA? (in this repo I suppose)

Regards,

shell not running

I have tried odoo.py shell -d <my_db_name> and it doesn't do anything it just exits to bash.

restricting field access per field, per record, depending on other values

Hi all,

we've come far already with field access restrictions, but I'm not aware of a general and simple way to restrict access to fields based on values of the record (I'm not talking about the UI, but hard restrictions you can't circumvent).

I'm tinkering with a mixin that is supposed to make this task easy: https://gist.github.com/hbrunn/776143edc5e5f6e08367

With this, the following code is sufficient for my client to have only a couple of fields of the partner model readable/editable if the current user is not either the partner's salesperson or in the sales team assigned to the partner (the latter are custom fields):

class ResPartner(models.Model):
    _inherit = ['restrict.field.access.mixin', 'res.partner']
    _name = 'res.partner'

    @api.multi
    def _restrict_field_access_get_field_whitelist(self, action='read'):
        whitelist = [
            'name', 'parent_id', 'is_company', 'firstname', 'lastname',
            'infix', 'initials',
        ] + super(ResPartner, self)\
            ._restrict_field_access_get_field_whitelist(action=action)
        if action == 'read':
            whitelist.extend(['section_id', 'user_id'])
        return whitelist

    @api.multi
    def _restrict_field_access_is_field_accessible(self, field_name,
                                                   action='read'):
        result = super(ResPartner, self)\
            ._restrict_field_access_is_field_accessible(
                field_name, action=action)
        if result or not self:
            return result
        return all(this.section_id in self.env.user.section_ids or
                   this.user_id == self.env.user
                   for this in self)

    @api.multi
    @api.onchange('section_id', 'user_id')
    @api.depends('section_id', 'user_id')
    def _compute_restrict_field_access(self):
        return super(ResPartner, self)._compute_restrict_field_access()

    @api.model
    def _restrict_field_access_inject_restrict_field_access_domain(
            self, domain):
        domain[:] = expression.AND([
            domain,
            [
                '|',
                ('section_id', 'in', self.env.user.section_ids.ids),
                ('user_id', '=', self.env.user.id),
            ],
        ])

simple enough, right? Note that we can have a different set of fields writable than readable.

Now my questions:

  • am I doing something stupid and similar functionality exists already?
  • I'm inclined to polish the mixin a bit and PR it as a module here, do we want that?
  • any features missing?

database cleanup UI glitch

The database cleanup objects are Transient Models, so logically he menu items point to a newly created record each time.
But buttons cannot be clicked in the tree-view of o2m fields until the parent object is saved. So for the moment, if you want to purge only one element, you have enter the menu, press "Save" and only then purge the element you want - and you have to guess that for yourself.

dead_mans_switch_client cron job crashes in case of timeout

@hbrunn Thanks a lot for the dead man's switch modules! We started using them to monitor our customers' instances and we have one main issue: the cron job of the client crashes when it can't reach the server. The main reason in our case is because our server running dead_mans_switch_server is located in China, so sometimes an instance running dead_mans_switch_client outside of China can't reach it ("thanks" to the Great Firewall). But I guess it could also happen if the Odoo running dead_mans_switch_server has crashed.

Here's the stack trace of the timeout (this one is running the v7 version):

ERROR stable openerp.addons.base.ir.ir_cron: Call of self.pool.get('dead.mans.switch.client').alive(cr, uid, *()) failed in Job 10
Traceback (most recent call last):
  File "/opt/odoo/sources/odoo/openerp/addons/base/ir/ir_cron.py", line 136, in _callback
    method(cr, uid, *args)
  File "/opt/odoo/additional_addons/dead_mans_switch_client/models/dead_mans_switch_client.py", line 66, in alive
    'Content-Type': 'application/json',
  File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 404, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 422, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 1222, in https_open
    return self.do_open(httplib.HTTPSConnection, req)
  File "/usr/lib/python2.7/urllib2.py", line 1184, in do_open
    raise URLError(err)
URLError: <urlopen error [Errno 110] Connection timed out>

I think a simple try/except around the call to urllib2.urlopen(...) inside alive(self) should do the trick!

database_cleanup: KeyError: u'process.transition.action'

After doing a 7.0 to 8.0 migration with OpenUpgrade, I was left with two obsolete modules installed, "process" and "account_report_company". I installed database_cleanup, tried to purge them, and got this error:

Traceback (most recent call last):
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/http.py", line 530, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/http.py", line 567, in dispatch
    result = self._call_function(**self.params)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/http.py", line 303, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/http.py", line 300, in checked_call
    return self.endpoint(*a, **kw)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/http.py", line 796, in __call__
    return self.method(*args, **kw)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/http.py", line 396, in response_wrap
    response = f(*args, **kw)
  File "/home/jwelsh/foss/odoo/odoo/addons/web/controllers/main.py", line 940, in call_button
    action = self._call_kw(model, method, args, {})
  File "/home/jwelsh/foss/odoo/odoo/addons/web/controllers/main.py", line 928, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/jwelsh/foss/odoo/server-tools/database_cleanup/model/purge_wizard.py", line 59, in purge_all
    context=context)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/jwelsh/foss/odoo/server-tools/database_cleanup/model/purge_modules.py", line 53, in purge
    _db, _pool = pooler.restart_pool(cr.dbname, update_module=True)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/pooler.py", line 46, in restart_pool
    registry = RegistryManager.new(db_name, force_demo, status, update_module)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/modules/registry.py", line 368, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/modules/loading.py", line 423, in load_modules
    registry['ir.module.module'].module_uninstall(cr, SUPERUSER_ID, modules_to_remove.values())
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/addons/base/module/module.py", line 462, in module_uninstall
    ir_model_data._module_data_uninstall(cr, uid, modules_to_remove, context)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/addons/base/ir/ir_model.py", line 1217, in _module_data_uninstall
    ir_model_constraint._module_data_uninstall(cr, uid, constraint_ids, context)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/addons/base/ir/ir_model.py", line 575, in _module_data_uninstall
    model_obj = self.pool[model]
  File "/home/jwelsh/.local/lib/python2.7/site-packages/openerp/modules/registry.py", line 102, in __getitem__
    return self.models[model_name]
KeyError: u'process.transition.action'

[9.0] dbfilter_from_header Works without modification from 8.0 Version

@pedrobaeza ,

I've been testing this module (8.0 version in 9.0 branch) and have only needed to switch it from:

'installable': False

to:

'installable': True

and the module seems to work without any issues.

Are there any plans to change this flag to allow for installation in 9.0, or does this particular module require further unit testing in order to ensure it is fully compatible?

[prototype] rename module

It would be better to rename this module with :

  • "module_prototyper"
  • or "module_builder"

to avoid any confusion with prototype or engineering industry

[ROADMAP] Configurable record display names

Purpose

Allow for non-technical configuration of record display names (name_get())
A non-programmer can configure record display names buy adding a key in the system parameters table.

For example, setting name_get.hr.employee to [%(code)s] %(name)] would be enough to make employees to be displayes as [0105] John Smith.

Framework Module for Materialized view

Hi all,

I recently discovered a new concept in PostgreSQL, the materialized views. I so experimented this tools in a custom modules. (You can read the code here )
I would like to refactor the class materialized_view and share it into an OCA Module.

As it will be a 'framework' module, I don't know if 'server-tools' is the best repository. What is your point of view ? Do you think it could interest some of you ?

For people who don't know what it is, the materialized view is a computed view. It is defined like a standard view, but a real table is generated. So the data are accessible faster. On the other side, the data are not up to date, and the materialized view must be 'refreshed' regularly.
This is usefull for reports in dashboard, and specially if the view uses "UNION" request.
In the case of my custom module I want to merge 'sale' and 'POS' orders information. With a medium sized database, (PO : 120k ; SO : 10k ):

  • without materialized view : request : ~ 50 sec;
  • with materialized view : request : < 1sec; refresh duration : ~ 60 sec; (each night)

I would like to create a (V7) module that :
[x] manage this new kind of Model;
[x] check if the postgres version is compatible . (need PG 9.3 +)
[x] propose functions to refresh the view;
[x] create a cron task that must be configured after, to indicate the frequence of the refresh;
[ ] Display to the user the date of the last refresh; ('web' changes);

[8.0/Master] Feature Request - <disable_openerp_online> to remove /website/info from public view

I'd like to suggest a feature for the module //OCA/server-tools/disable_openerp_online . By default the 8.0/Master branch of Odoo includes a view that displays all installed modules in a given database to the public so long as the website module is installed.

The code that controls this feature is in /odoo/addons/website/controllers/main.py, specifically the following snippet:
@http.route('/website/info', type='http', auth="public", website=True)

This is currently being discussed in the thread for Issue #3546 in /odoo/odoo/issues if you are interested.

I would like to suggest either including the over-riding/hiding of the /website/info feature in disable_openerp_online, or an OCA-built module in server-tools designed specifically to remove this feature (at least from anyone without 'Technical Features' access rights) as it poses a security threat by publicly displaying your database's installed modules, both Odoo SA approved and community modules with less QC checks than Odoo SA, or OCA modules.

[8.0] Mass Editing Tool: ValueError: invalid literal for int() with base 10: 'erkau'

Go to Settings -> Database -> Technical -> Database Structure -> Fields

Search for Model "Verkauf" / "Sale"

Failure is thrown.

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 518, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 539, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 295, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 292, in checked_call
    return self.endpoint(*a, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 755, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 388, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 875, in search_read
    return self.do_search_read(model, fields, offset, limit, domain, sort)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 896, in do_search_read
    request.context)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 859, in proxy
    result = meth(cr, request.uid, *args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 5060, in search_read
    record_ids = self.search(cr, uid, domain or [], offset=offset, limit=limit, order=order, context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/home/odoo/server-tools/mass_editing/models/ir_model_fields.py", line 37, in search
    ('model_id', 'in', map(int, domain[2][1:-1].split(',')))
ValueError: invalid literal for int() with base 10: 'erkau'

Propose auth module to generate randomly user's password

Hi all,

I recently developped an 'auth' module for my company (auth_generate_password). The features are:

  • Users can not change them password;
  • Password are generated randomly and an email is send to them;
  • an action is available to reinitialize many users passwords;

Maybe it can be usefull for other people in the community. If yes, please 👍, and I'll share it.

If you want to check the code...
https://github.com/grap/odoo-addons-grap/blob/7.0/auth_generate_password/__openerp__.py

Regards.

Odoo runs much slower with auditlog module installed

I installed the auditlog module in our Odoo 8 application.

Since this module is installed, the Odoo runs much slower. One of my own developed processes runs less than 2 minutes when the auditlog is uninstalled, but with the auditlog installed it takes about 90 minutes.

I have rules installed for 30 models (f.e. partner, product, product variant, accounts, invoices, journal entries and items, purchase orders, manufacturing orders), and for each of these modules, I log writes, deletes, and creates. I never log to reads.

ImportError: No module named ldap.filter

File "/home/travis/server-tools/users_ldap_populate/model/users_ldap.py", line 23, in
from ldap.filter import filter_format
ImportError: No module named ldap.filter

[Bug] mass_editing - Search in ir.model.fields not working

I setup the mass_editing for res.partner then i go to:
Settings -> Technical -> Database Structure -> Fields
and go to the Filter with ('model_id','=',61) where 61 is the id of res.partner in res.model. By typ "res.partner" and select "Partner" from the suggestion.

Then i get the following error:
File "[..]/mass_editing/mass_editing.py", line 34, in search
model_domain += [('model_id', 'in', map(int, domain[2][1:-1].split(',')))]
TypeError: 'int' object has no attribute 'getitem'

[AUDITLOG] and property fields

AuditLog (branch 8.0 (5f99ef1)) did not log write in property fields in case superuser company is different from user company

property field is company dependent:

ff = fields.Many2one(
string='Label',
comodel_name='aaa.bbb',
company_dependent=True
)


your code:

def _make_write(self):
"""Instanciate a write method that log its calls."""
@api.multi
def write(self, vals, *_kwargs):
self = self.with_context(auditlog_disabled=True)
rule_model = self.env['auditlog.rule']
old_values = dict(
(d['id'], d) for d in self.sudo().read(list(self._fields)))
result = write.origin(self, vals, *_kwargs)
new_values = dict(
(d['id'], d) for d in self.sudo().read(list(self._fields)))
rule_model.sudo().create_logs(
self.env.uid, self._name, self.ids,
'write', old_values, new_values)
return result
return write

self.sudo().read - it read data for superuser and if current user company is different from superuser company new_values contains the same values for property fields

how to fix:
1 way

just use self.read

2 way (but i did not sure that this is right way)

def _make_write(self):
"""Instanciate a write method that log its calls."""
@api.multi
def write(self, vals, *_kwargs):
self = self.with_context(auditlog_disabled=True)
rule_model = self.env['auditlog.rule']
ctx = dict(self._context)
ctx.update(force_company=self.env.user.company_id.id)
old_values = dict(
(d['id'], d) for d in self.sudo().with_context(ctx).read(list(self._fields)))
result = write.origin(self, vals, *_kwargs)
new_values = dict(
(d['id'], d) for d in self.sudo().with_context(ctx).read(list(self._fields)))
print new_values
rule_model.sudo().create_logs(
self.env.uid, self._name, self.ids,
'write', old_values, new_values)
return result
return write

[9.0]users_ldap_populate not works

Hello,

I found bug when I tried to use users_ldap_populate module on version 9,
here is the error message:

File "/opt/falinwa_branch/users_ldap_populate/model/users_ldap.py", line 85, in populate_wizard
res_id = wizard_obj.create({'ldap_id': self.id}).id
File "/opt/odoo/openerp/api.py", line 230, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/falinwa_branch/users_ldap_populate/model/populate_wizard.py", line 44, in create
vals['users_created'] = ldap.action_populate()
File "/opt/odoo/openerp/api.py", line 230, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/falinwa_branch/users_ldap_populate/model/users_ldap.py", line 55, in action_populate
for conf in self.get_ldap_dicts(self.cr, self.ids):
AttributeError: 'res.company.ldap' object has no attribute 'cr'

I think, because you use the new API, you need to change from self.cr to self.env.cr

Thank You.

server-environment: spurious messages from lsb_release are printed to the terminal

On startup, the module server_environment collects about the system and allows the user to display it.

Every time the message No LSB modules are available. is printed out on my ubuntu system.

This could be used by the module to show infomation to the user, but it makes no sense to print out that string. This gets especially annoying when running automated tests, as the message will be shown among the tests results.

Selecting several objects to change value gives Traceback

Hi, Since last update, several changes defined for products or customers don't work any more

Steps to reproduce:
Go to product
Select several
Launch any massive editing wizard -->System will show this error

Uncaught TypeError: Cannot read property 'get_context' of undefined
http://demo.odoomrp.com/web/js/web.assets_backend/0a0498c:3164

On the other side, if you select a single object, the wizard is correctly launched and it works properly

Migration to version 9.0

Todo

https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-9.0

Modules to migrate

  • admin_technical_features by @njeudy in #318
  • auditlog - By @holdenrehg - #454 - By @sebalix - #603
  • auth_admin_passkey - By @rvalyi - #522
  • auth_brute_force - By @yajo - #1255
  • auth_dynamic_groups
  • auth_from_http_basic
  • auth_from_http_basic_logout
  • auth_from_http_remote_user @lmignon #457
  • auth_saml - #274
  • auth_signup_verify_email - by @yajo #436
  • auth_supplier - By @yajo - #434
  • auto_backup - by @lasley - #526
  • base_concurrency - #342
  • base_custom_info - By @yajo - #435
  • base_debug4all - Not needed anymore (in core) - Removed in #573
  • base_external_dbsource by @naousse in #513
  • base_field_serialized
  • base_import_match - By @cubells - #649
  • base_ir_filters_active
  • base_multi_image - Assigned to @atchuthan - #402
  • base_name_search_improved - By @nicomacr - #621
  • base_optional_quick_create #387, see also #300 (comment)
  • base_search_fuzzy - By @darshan-serpent - #675
  • base_suspend_security - #333
  • base_report_auto_create_qweb - By @damdam-s - #438
  • base_user_gravatar - #338
  • base_user_role - By @sebalix - #641
  • configuration_helper @yvaucher #411
  • cron_run_manually #380 (Deleted because is now on core)
  • database_cleanup - By @hbrunn - #469
  • datetime_formatter - By @cubells - #605
  • dbfilter_from_header - #382
  • disable_openerp_online > disable_odoo_online - #399
  • email_template_template
  • fetchmail_attach_from_folder
  • fetchmail_notify_error_to_sender
  • html_image_url_extractor - @cubells - #624
  • html_text - @cubells - #625
  • import_odbc
  • inactive_session_timeout > auth_session_timeout - #379
  • ir_config_parameter_viewer
  • language_path_mixin
  • mail_environment #335
  • mass_editing (WIP #315, #320)
  • module_prototyper by @njeudy in #318
  • qweb_usertime - Not needed as stated in #700 (comment)
  • save_translation_file
  • scheduler_error_mailer - by @atchuthan - #429
  • security_protector
  • server_env_base_external_referentials
  • server_environment #337
  • server_environment_files_sample #337
  • shell #306
  • super_calendar - By @JayVora-SerpentCS - #528
  • users_ldap_groups
  • users_ldap_mail
  • users_ldap_populate
  • users_ldap_push
  • web_context_tunnel (wip by @atchuthan)

Log viewer in Odoo interface

Is there a module out there which can show the output of Odoo logs inside a Odoo view?

If not, I feel this would a very important module to make for Odoo admins who do not have access to host filesystems.

There are cases where Cronjobs fail silently (no error message in the interface) and it would be great to be able to see the logs and even to filter them by level.

This is an example in gitlab:

gitlablog

Implementation hints:

Errors produced by fetchmail_attach_from_folder

I'm getting this log error every time fetchmail is run in crontab or manually

2015-09-02 06:09:04,798 9318 INFO robosavvy openerp.addons.fetchmail_attach_from_folder.model.fetchmail_server: start checking for emails in CRM-Leads server Nuno
2015-09-02 06:09:05,024 9318 INFO robosavvy openerp.addons.fetchmail_attach_from_folder.model.fetchmail_server: finished checking for emails in CRM-Leads server Nuno
2015-09-02 06:09:05,024 9318 INFO robosavvy openerp.addons.fetchmail_attach_from_folder.model.fetchmail_server: start checking for emails in CRM-Customers server Nuno
2015-09-02 06:09:05,272 9318 INFO robosavvy openerp.addons.fetchmail_attach_from_folder.model.fetchmail_server: finished checking for emails in CRM-Customers server Nuno
2015-09-02 06:09:05,708 9318 ERROR robosavvy openerp.addons.base.ir.ir_cron: Call of self.pool.get('fetchmail.server')._fetch_mails(cr, uid, *()) failed in Job 6
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/ir/ir_cron.py", line 138, in _callback
    getattr(model, method_name)(cr, uid, *args)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/fetchmail/fetchmail.py", line 187, in _fetch_mails
    return self.fetch_mail(cr, uid, ids, context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/var/lib/odoo/.local/share/Odoo/addons/8.0/fetchmail_attach_from_folder/model/fetchmail_server.py", line 73, in fetch_mail
    connection.close()
  File "/usr/lib/python2.7/imaplib.py", line 394, in close
    typ, dat = self._simple_command('CLOSE')
  File "/usr/lib/python2.7/imaplib.py", line 1087, in _simple_command
    return self._command_complete(name, self._command(name, *args))
  File "/usr/lib/python2.7/imaplib.py", line 837, in _command
    ', '.join(Commands[name])))
error: command CLOSE illegal in state AUTH, only allowed in states SELECTED

There are two folder rules for IMAP account "Nuno":

This rule creates leads from emails showing up in folder CRM-Leads - it works as expected (although unfortunately it only catches incoming emails, not outgoing emails)
crm-leads

This rule is supposed to create message threads associated with customers - this doesnt seem to do anything. no mails are read :(
crm-customers

[auditlog] new feature "action" or smart button on model for roadmap

Hi community,

It should be nice to add action or smart button generator in auditlog.rules

For example, if i create rule to log actions around the res.partner model, i can add an action or smart button on the concerned model to view directly all logs with context.

It would be adapted for create, read, write

Map User Groups broken on module users_ldap_groups with Odoo 8

Hi,

We have an Odoo server 8 configured with auth_ldap and users_ldap_groups.

In order to map users to Odoo groups from an LDAP attribute we use the feature Map User Groups of the module users_ldap_groups.

This feature is working correctly on the first login of the user (when the user is created). For example, using the following rules

LDAP attribute 'employeeType' contains value 'localworker' then assing to OpenERP group LocalWorkers
LDAP attribute 'employeeType' contains value 'remoteworker' then assing to OpenERP group RemoteWorkers

Everything works as expected on the first login of the user. It is mapped to the right group.

However, if we change this value on the LDAP server, the group is not changed after the user logs outs and logs in again. We tried restarting the odoo server. Didn't helped. Only deleting the user from Odoo makes the thing work.

I have been debuggin the issue, and it seems that get_or_create_user() is only executed when the user is created (first login), but not when the user already has an entry on the Odoo server

Improvement on super_calendar (group_by, filter)

Hi,

We need to improve some new features on super_calendar like :

  • group_by day, week, month, quarter, year
  • filter by current week, current month, next week, next month

If you plan to do it, please share.
If not, we are going to do it in next weeks... ;-)

Annoying logs while using the shell

I get interrupted while writing in the shell by the following logs:
openerp.addons.hw_escpos.controllers.main: ESC/POS Device Disconnected: Printer Not Found
openerp.addons.hw_escpos.controllers.main: disconnected : Printer Not Found

[auditlog] new feature "domain" for roadmap

Hi community,

It should be nice to add domain in auditlog.rules
For example, i need to log actions around the res.partner model but only on selected field like categories or address for example.

tree_view_record_id: causes a warning in the logs

in the runbot logs I get:

2015-07-17 13:09:05,793 27838 WARNING 3110977-7-0-458127-all openerp.modules.loading: The model module.tree.view.record.id.installed has no access rules, consider adding one. E.g. access_module_tree_view_record_id_installed,access_module_tree_view_record_id_installed,model_module_tree_view_record_id_installed,,1,1,1,1

I tracked down module.tree.view.record.id.installed to tree_view_record_id

I totally don't understand why the pseudo dynamic a weird name generated that way, but an ACL is missing

[AUDIT LOG] : DELETE LOGS PERIODICALLY

module: auditlog
version: 8.0

Steps to reproduce

  • There Should Be an option to delete logs periodically i.e From Date to To Date.
    so that the unnecessary burden on Database can be reduced.

Current behavior

  • There is no such functionality

Expected behavior
--> Reporting -> Delete Logs
Input : From Date : 01/MAY/2015 to 31/MAY/2015
Click on Show : Get No of Records:
Click on Delete : Ask for Confirmation & Delete Entries.

Module prototype : Create new module on ubuntu

Maxime

Loïc, did you put an accent in your module name ? Please try not to and report an issue to:

No, no accent.

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 518, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 539, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 295, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 292, in checked_call
    return self.endpoint(*a, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 755, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 388, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 953, in call_button
    action = self._call_kw(model, method, args, {})
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 941, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 332, in old_api
    result = method(recs, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/prototype/wizard/prototype_module_export.py", line 85, in action_export
    zip_details = self.zip_files(prototype.generate_files())
  File "/usr/lib/python2.7/dist-packages/openerp/addons/prototype/wizard/prototype_module_export.py", line 119, in zip_files
    target.writestr(info, filecontent)
  File "/usr/lib/python2.7/zipfile.py", line 1234, in writestr
    zinfo.CRC = crc32(bytes) & 0xffffffff       # CRC-32 checksum
UnicodeEncodeError: 'ascii' codec can't encode character u'\xef' in position 1106: ordinal not in range(128)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.