[lib] ajout des fichiers non suivis

darcs-hash:20090609134320-bd074-f4df3e57ff2a6e60f07e25cda773524c8e20de3c.gz
This commit is contained in:
Antoine Durand-Gasselin 2009-06-09 15:43:20 +02:00
parent dce8ccb6da
commit c2535c1f04
17 changed files with 2346 additions and 0 deletions

48
lib/gestion/models.py Executable file
View file

@ -0,0 +1,48 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# #############################################################
# ..
# .... ............ ........
# . ....... . .... ..
# . ... .. .. .. .. ..... . ..
# .. .. ....@@@. .. . ........ .
# .. . .. ..@.@@..@@. .@@@@@@@ @@@@@@. ....
# .@@@@. .@@@@. .@@@@..@@.@@..@@@..@@@..@@@@.... ....
# @@@@... .@@@.. @@ @@ .@..@@..@@...@@@. .@@@@@. ..
# .@@@.. . @@@. @@.@@..@@.@@..@@@ @@ .@@@@@@.. .....
# ...@@@.... @@@ .@@.......... ........ ..... ..
# . ..@@@@.. . .@@@@. .. ....... . .............
# . .. .... .. .. . ... ....
# . . .... ............. .. ...
# .. .. ... ........ ... ...
# ................................
#
# #############################################################
# models.py
#
# Classe de base pour mapper automatiquement des
# enregistrements ldap et des objets python
#
# Auteur: Grégoire Détrez <gdetrez@crans.org>
# Copyright (c) 2008 by www.crans.org
# #############################################################
import fields
class MetaModel(type):
def __init__(cls, name, bases, attrs):
super(type, cls).__init__(cls, name, bases, attrs)
_fields = {}
for item_name in attrs:
if isinstance(attrs[item_name], fields.baseField):
_fields[item_name] = attrs[item_name]
setattr(cls, "_model_fields", _fields)
class Model(object):
__metaclass__ = MetaModel
def __init__( self, data ):
k = self._model_fields
for a_field in self._model_fields:
val = self._model_fields[a_field].load(data.get(a_field, None))
setattr(self, a_field, val)