from django.conf import settings
from project.rh import models as rh
+SKIP = "** SKIP **"
+
class SuperCopier(object):
"""
Classe abstraite pour faire de la copie profonde sur des objets en BD.
self.stdout.write(txt)
def clean_id(self, source, copy, parent, field, value):
- pass
+ self.out(SKIP, 1)
+ return []
def parent(self, parent, child):
klass = parent.__class__.__name__.lower()
for f in obj._meta.fields:
value = getattr(obj, f.name)
- self.out(u"\n%s * %s: %s" % (indent, f.name, value), 2)
+
+ self.out(u"\n%s * %s: %s " % (indent, f.name, value), 2)
cleanup_fct = "clean_%s" % f.name
if hasattr(self, cleanup_fct):
field_name = obj_composition.field.rel.related_name
if field_name == '+':
continue
+ self.out(u"\n%s + [%s] %s " % (indent, app_label, field_name), 1)
try:
cleanup_fct = "clean_%s" % field_name
if hasattr(self, cleanup_fct):
children = cleaner(obj, copy, parent, f, value)
else:
children = getattr(obj, field_name).all()
- self.out(u"\n%s + [%s] %s" % (indent, app_label, field_name), 1)
except Exception, e:
# no reverse relation
self.out(" %s %s" % (field_name, str(e)), 1)
class PosteCopier(SuperCopier):
def clean_rh_dossiers(self, source, copy, parent, field, value):
- self.out("\n** SKIP **", 1)
+ self.out(SKIP, 1)
return []
def clean_rh_comparaisons_internes(self, source, copy, parent, field, value):
- self.out("\n** SKIP **", 1)
+ self.out(SKIP, 1)
return []
def clean_rh_financements(self, source, copy, parent, field, value):
- self.out("\n** SKIP **", 1)
+ self.out(SKIP, 1)
return []
def clean_rh_pieces(self, source, copy, parent, field, value):
- self.out("\n** SKIP **", 1)
+ self.out(SKIP, 1)
return []
def clean_dae_dossiers(self, source, copy, parent, field, value):
- self.out("\n** SKIP **", 1)
+ self.out(SKIP, 1)
return []
def clean_fichier(self, source, copy, parent, field, value):
class DossierCopier(SuperCopier):
def clean_rh_contrats(self, source, copy, parent, field, value):
- self.out("\n** SKIP **", 1)
+ self.out(SKIP, 1)
return []
def clean_rh_dossierpieces(self, source, copy, parent, field, value):
- self.out("\n** SKIP **", 1)
+ self.out(SKIP, 1)
return []
def clean_rh_comparaisons(self, source, copy, parent, field, value):
- self.out("\n** SKIP **", 1)
+ self.out(SKIP, 1)
return []
def clean_rh_remunerations(self, source, copy, parent, field, value):
- self.out("\n** SKIP **", 1)
+ self.out(SKIP, 1)
return []
def clean_employe(self, source, copy, parent, field, value):
copy.poste_id = poste.id
def clean_fichier(self, source, copy, parent, field, value):
- try:
- filename = value.path.split('/')[-1]
- except:
- setattr(copy, field.name, value)
- return
-
+ filename = value.path.split('/')[-1]
copy.dossier_id = parent.id
-
+
ct = copy.__class__.__name__.lower()
if ct == 'contrat':
new_value = rh.contrat_dispatch(copy, filename)