← Back to team overview

openerp-expert-framework team mailing list archive

[Bug 1023615] Re: Module upgrade ignores noupdate attribute for deleted records

 

Hi,

Due to the rather large implications of this behaviour IMHO, I am
subscribing the framework experts to this issue. The suggested fix
simply changes the default for 'forcecreate' back to 'False'. I am not
against this change per sé but as we have come to live with the current
behaviour it is good to think about the consequences.

Again, note that it once was False in the past, until
http://bazaar.launchpad.net/~openerp/openobject-
server/trunk/revision/1617/bin/tools/convert.py. Can the OpenERP
developers expand on the reasons that that change was committed in 2009,
if they remember?

Cheers,
Stefan.

-- 
You received this bug notification because you are a member of OpenERP
Framework Experts, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1023615

Title:
  Module upgrade ignores noupdate attribute for deleted records

Status in OpenERP Server:
  Fix Committed

Bug description:
  If I delete one of a module's standard configuration records, then
  upgrading the module recreates that record. This happens even when the
  noupdate attribute has been set. For example, when I delete a unit of
  measure, it comes back.

  I suspect this may have been a design change in v6.0 instead of a bug.
  If that's true, will I cause myself problems by changing it back? Was
  there a reason for the change, or did some users just prefer the new
  behaviour?

  Steps to reproduce:
  1. Create a blank database with no demo data using version 6.1.1.
  2. From the Settings menu, choose Modules: Modules.
  3. Turn off the Apps filter and install the product module.
  4. From the Settings menu, choose Users: Users.
  5. Open the admin user and go to the Access Rights tab.
  6. Set the Sales Management level to Manager, and turn on the Extended View.
  7. Reload the main menu. From the Sales menu, choose Configuration: Products: Units of Measure: Units of Measure.
  8. Delete the "g" record.
  9. Go back to the Modules screen and upgrade the product module.
  10. Go back to the Units of Measure screen and click the Find button.

  Expected behaviour: the "g" record should stay deleted because product_data.xml used noupdate="1".
  Actual behaviour: the "g" record is recreated.

  Workaround: instead of deleting the record, mark it inactive.

  Impact:
  There's no way for a user to tell whether a record is a standard configuration record or was added by a user, so they can't tell whether they're allowed to really delete it or they have to deactivate it. If I decide to live with the new behaviour, then I think I'll just have to tell the users not to delete any records from screens in the configuration menus. I guess that's probably a good policy anyway, because they can't easily tell whether it's being referenced by any child records.
  Where it's really biting us, though, is the migration process from version 5.0 to 6.0. Any records that we deleted, like currencies, are unexpectedly reappearing and causing errors.

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-server/+bug/1023615/+subscriptions