Code review comment for lp:~openerp-dev/openobject-server/6.1-opw-575655-rha

Revision history for this message
Olivier Dony (Odoo) (odo-openerp) wrote :

On 06/13/2012 02:28 PM, Vadim - Enapps LTD wrote:
> Hi Olivier, thanks for the detailed answer. All clear, tell me please what
> is it supposed to be done with the feature requirement. it is very common
> when we require the operators to see a certain field, but not to write.

There is currently no mechanism to accomplish that by default. We might support
this in the future, but nothing is planned yet, as most SMBs will never need
this. When you think about it, you're trying to trust someone to have full
control on a kind of document, let them create/modify/delete the documents, but
not let them touch one of the fields on these documents?! The rationale for
doing this is often flawed.

> i.e.:
>
> 1 - Sale operator to see the credit terms for the sales order, but not be
> able to change it as this is a function normally performed by finance only.

In fact, payment terms are something that is commonly discussed between
Salesmen and Customers in many companies. Certain products such as services may
be associated with different payment terms, for example. In any case, it is the
responsibility of whoever validates the Sale Order to double-check this.
If the Salesman is allowed to validate a Sale Order, then he should be trusted
to choose appropriate terms. If there is a second layer of approval, then let
the supervisor (presumably from Finance) verify the terms before approving.

> 2 - Finance personnel to be able to place a stock_picking on hold with a
> checkbox and warehouse personnel to see the info, but not be able to amend
> it. It is a feature of pretty much any serious erp system in the world to
> have the read/write by field. Thanks to Rifakat for the smart pointers - now
> we know where to look to develop this further, but i definitely see that
> lack of such a feature limits us in what we can construct with openerp.

Similarly, you're trusting warehouse workers to manage pickings,
create/split/deliver them, but you don't trust them to respect a simple "on
hold" workflow flag? This might indicate that the responsibilities are not
properly assigned. If finance personnel are the ones who can put a picking on
hold, on what basis do they do it? Per customer? Per invoice? The flag could be
put on the customer or invoice, and the workflow made to handle it
appropriately on the picking - but the flag should not be located on the
picking itself. In most companies finance personnel would not have access to
pickings.

By applying the same logic everywhere, I think you will not only have a simple
and direct implementation of the business rules, but also avoid unintuitive
user experience.

Now if you really want to do things the hard way, it is very simple to
customize and extend OpenERP, as usual. For example you can have different
views for the same document, one where certain fields are read-only (possibly
even read-only related fields), and one where the master fields are exposed.
You then assign a different menuitem with the appropriate view to each group.
And that's just one way to do it, many other solutions are possible.

« Back to merge proposal