diff --git a/odex30_base/ctp_database_clean_up/models/ctp_database_clean_up.py b/odex30_base/ctp_database_clean_up/models/ctp_database_clean_up.py index e5d4c6e..7752ecb 100644 --- a/odex30_base/ctp_database_clean_up/models/ctp_database_clean_up.py +++ b/odex30_base/ctp_database_clean_up/models/ctp_database_clean_up.py @@ -12,23 +12,26 @@ class CtpDatabaseCleanUp(models.TransientModel): def remove_data(self, o, s=[]): for line in o: try: - if not self.env['ir.model']._get(line): + model = self.env['ir.model']._get(line) + if not model: + _logger.warning('Model %s not found, skipping.', line) continue + + t_name = self.env[line]._table + sql = "delete from %s" % t_name + + try: + self._cr.execute(sql) + _logger.info('Successfully deleted data from %s', t_name) + self._cr.commit() + except Exception as e: + _logger.warning('Database Clean up error on table %s: %s', t_name, e) + self._cr.rollback() + except Exception as e: - _logger.warning('Database Clean up error get ir.model: %s,%s', line, e) - continue - obj_name = line - obj = self.pool.get(obj_name) - if not obj: - t_name = obj_name.replace('.', '_') - else: - t_name = obj._table - sql = "delete from %s" % t_name - try: - self._cr.execute(sql) - self._cr.commit() - except Exception as e: - _logger.warning('Database Clean up error: %s,%s', line, e) + _logger.warning('General error processing model %s: %s', line, e) + self._cr.rollback() + for line in s: domain = ['|', ('code', '=ilike', line + '%'), ('prefix', '=ilike', line + '%')] try: @@ -37,8 +40,10 @@ class CtpDatabaseCleanUp(models.TransientModel): seqs.write({ 'number_next': 1, }) + _logger.info('Reset sequence for %s', line) except Exception as e: - _logger.warning('Reset Sequence Data error: %s,%s', line, e) + _logger.warning('Reset Sequence Data error: %s, %s', line, e) + return True def remove_sales(self):