+#-*- coding: utf8 -*-
+'''
+'''
+
+from openerp.osv import osv, fields
+
+
+class Mesurable(osv.Model):
+ _name = "projet.mesurable"
+
+ _statuts = [("cree", "Crée"), ("encours", "En cours"),
+ ("termine", "Terminé"), ("abandonne", "Abandonné"),
+ ("suspendu", "Suspendu"), ("generique", "Générique")]
+
+ _columns = {
+ "name": fields.char(string="Title", size=64, required=True),
+ "description": fields.text(string="Description"),
+ "commentaire": fields.text(string="Commentaire"),
+ "statut": fields.selection(_statuts, string="Statut"),
+ "version": fields.char(string="Version", size=16),
+ "date_jalon": fields.date(string="Jalon"),
+ "date_init_deb": fields.date(string="Date initiale début"),
+ "date_init_fin": fields.date(string="Date initiale de fin"),
+ "date_plan_deb": fields.date(string="Date plannifiée début"),
+ "date_plan_fin": fields.date(string="Date plannifiée de fin"),
+ "date_reel_deb": fields.date(string="Data réelle début"),
+ "date_reel_fin": fields.date(string="Data réelle fin"),
+ }
+
+ _sql_constraints = [
+ (
+ "date_init_deb_before_date_init_fin",
+ "CHECK(date_init_deb<> date_init_fin)",
+ "The date_init_deb should be previous date_init_fin",
+ ),
+ (
+ "date_plan_deb_before_date_plan_fin",
+ "CHECK(date_plan_deb <> date_plan_fin)",
+ "The date_plan_deb should be previous date_plan_fin",
+ ),
+ (
+ "date_reel_deb_before_date_reel_fin",
+ "CHECK(date_reel_deb<> date_reel_fin)",
+ "The date_reel_deb should be previous date_reel_fin",
+ ),
+ ]
+
+
+class Chantier(osv.Model):
+ _name = "projet.chantier"
+
+ _inherit = "projet.mesurable"
+
+ _columns = {
+ "projet_id": fields.many2one("projet.projet",
+ string="Projet",
+ required=True),
+ "evolutions": fields.one2many("projet.evolution",
+ "chantier_id",
+ string="Evolutions"),
+ }
+
+
+class Palier(osv.Model):
+ _name = "projet.palier"
+
+ _types_palier = [("normal", "Normal"), ("exceptionnel", "Exceptionnel"),
+ ("correctif", "Correctif"), ("autre", "Autre")]
+
+ _inherit = "projet.mesurable"
+
+ _columns = {
+ "type_palier": fields.selection(_types_palier, string="Type"),
+ "projet_id": fields.many2one("projet.projet",
+ string="Projet",
+ required=True),
+ "evolutions": fields.one2many("projet.evolution",
+ "palier_id",
+ string="Evolutions"),
+ "phases": fields.one2many("projet.phase",
+ "palier_id",
+ string="Phases"),
+ }