1
0
Fork 0
mirror of https://github.com/yweber/lodel2.git synced 2026-04-30 04:00:57 +02:00
lodel2_mirror/EditorialModel/migrationhandler/dummy.py
Yann aa6e01bff0 Dirty comit of a djago MH that "works"
Code cleaning, commenting etc needed...
2015-09-16 09:53:03 +02:00

49 lines
2.3 KiB
Python

# -*- coding: utf-8 -*-
## @package EditorialModel.migrationhandler.dummy
# @brief A dummy migration handler
#
# According to it every modifications are possible
#
## Manage Model changes
class DummyMigrationHandler(object):
def __init__(self, debug=False):
self.debug = debug
## @brief Record a change in the EditorialModel and indicate wether or not it is possible to make it
# @note The states ( initial_state and new_state ) contains only fields that changes
# @param em model : The EditorialModel.model object to provide the global context
# @param uid int : The uid of the change EmComponent
# @param initial_state dict | None : dict with field name as key and field value as value. Representing the original state. None mean creation of a new component.
# @param new_state dict | None : dict with field name as key and field value as value. Representing the new state. None mean component deletion
# @throw EditorialModel.exceptions.MigrationHandlerChangeError if the change was refused
def register_change(self, em, uid, initial_state, new_state):
if self.debug:
print("\n##############")
print("DummyMigrationHandler debug. Changes for component with uid %d :" % uid)
if initial_state is None:
print("Component creation (uid = %d): \n\t" % uid, new_state)
elif new_state is None:
print("Component deletion (uid = %d): \n\t" % uid, initial_state)
else:
field_list = set(initial_state.keys()).union(set(new_state.keys()))
for field_name in field_list:
str_chg = "\t%s " % field_name
if field_name in initial_state:
str_chg += "'" + str(initial_state[field_name]) + "'"
else:
str_chg += " creating "
str_chg += " => "
if field_name in new_state:
str_chg += "'" + str(new_state[field_name]) + "'"
else:
str_chg += " deletion "
print(str_chg)
print("##############\n")
## @brief Not usefull for the moment
def register_model_state(self, em, state_hash):
if self.debug:
print("New EditorialModel state registered : '%s'" % state_hash)