'''
from openerp.osv import osv, fields
+from datetime import *
class Mesurable(osv.Model):
- _name = "projet.mesurable"
+ _name = "cmmi.axes.mesurable"
_statuts = [("cree", "Crée"), ("encours", "En cours"),
("termine", "Terminé"), ("abandonne", "Abandonné"),
]
+#=============== TODO TRAVAIL CALCUL JOURS OUVRES ==============================
+# def _annee_bissextile(self, annee): # TODO vérifier le besoin de self
+# """ Retourne vrai si l'année est bissextile, faux sinon. """
+# return (annee % 4 == 0 and annee % 100 != 0 or annee % 400 == 0)
+#
+#
+# def _get_date_paques(self, annee): # TODO vérifier le besoin de self
+# """
+# Retourne la date du dimanque de pâques pour une année donnée
+# sous la forme d'un objet date.
+# """
+# a = annee % 19
+# b = annee // 100
+# c = annee % 100
+# d = (19 * a + b - b // 4 - ((b - (b + 8) // 25 + 1) // 3) + 15) % 30
+# e = (32 + 2 * (b % 4) + 2 * (c // 4) - d - (c % 4)) % 7
+# f = d + e - 7 * ((a + 11 * d + 22 * e) // 451) + 114
+# mois = f // 31
+# jours = f % 31 + 1
+# return date(annee, mois, jours)
+#
+#
+# def get_jours_feries(self, annee):
+# """
+# Retourne une liste contenant les jours fériés d'une année donnée.
+# """
+# date_paques = _get_date_paques(self, annee)
+# return [
+# date_paques+timedelta(days=1), # Lundi de Pâques
+# date_paques+timedelta(days=39), # Jeudi de l'Ascension
+# date_paques+timedelta(days=50), # Lundi de Pentecôte
+# date(annee, 1, 1), # Jour de l'An
+# date(annee, 5, 1), # Fête du travail
+# date(annee, 5, 8), # Armistice 1945
+# date(annee, 7, 14), # Fête Nationale
+# date(annee, 8, 15), # Assomption
+# date(annee, 11, 1), # Toussaint
+# date(annee, 11, 11), # Armistice 1918
+# date(annee, 12, 25), # Noël
+# ]
+#
+# def _jour_ouvre(self, d):
+# """ Retourne vrai si la date est un jour ouvre, faux sinon."""
+# if (5,6).__contains__(d.weekday()) or _get_jours_feries(d.year).__contains__(d):
+# return False
+# else:
+# return True
+#
+# def _nb_jours_ouvre_entre_2_dates(self, d1, d2):
+# """
+# Retourne le nombre de jours ouvres entre deux dates données.
+#
+# >>> nb_jours_ouvre_entre_2_dates(date(2013, 5, 1), date(2013, 7, 31))
+# 62
+# >>> nb_jours_ouvre_entre_2_dates(date(2013, 7, 31), date(2013, 5, 1))
+# 62
+# """
+# if d1>d2:
+# d1, d2 = d2, d1 # Switch les 2 dates pour que d1 soit la plus petite
+# tmp = d1
+# jour_ouvres = 0
+# while tmp <= d2:
+# if _jour_ouvre(self, tmp): # Si tmp est un jour ouvre
+# jour_ouvres += 1
+# tmp += timedelta(days=1)
+# return jour_ouvres
+#===============================================================================
+
+
class Chantier(osv.Model):
- _name = "projet.chantier"
+ _name = "cmmi.axes.chantier"
- _inherit = "projet.mesurable"
+ _inherit = "cmmi.axes.mesurable"
_columns = {
- "projet_id": fields.many2one("projet.projet",
+ "projet_id": fields.many2one("cmmi.projet",
string="Projet",
required=True),
- "evolutions": fields.one2many("projet.evolution",
+ "evolutions": fields.one2many("cmmi.evolution",
"chantier_id",
string="Evolutions"),
}
class Palier(osv.Model):
- _name = "projet.palier"
+ _name = "cmmi.axes.palier"
+
+ _inherit = "cmmi.axes.mesurable"
_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",
+ "projet_id": fields.many2one("cmmi.projet",
string="Projet",
required=True),
- "evolutions": fields.one2many("projet.evolution",
+ "evolutions": fields.one2many("cmmi.evolution",
"palier_id",
string="Evolutions"),
- "phases": fields.one2many("projet.phase",
+ "phases": fields.one2many("cmmi.phase",
"palier_id",
string="Phases"),
}