1 from base import *
2 from sqlalchemy.orm import relationship
3 from sqlalchemy import Sequence
4
6 """
7 Clase que crea la tabla Usuario
8 """
9 __tablename__ = 'usuario'
10 id = Column(Integer, Sequence('usuario_id_seq'), primary_key=True)
11 ci = Column(Integer, nullable=False, unique=True)
12 nombres = Column(Text, nullable=False)
13 apellidos = Column(Text, nullable=False)
14 email = Column(Text)
15 telefono = Column(Integer)
16 direccion = Column(Text)
17 observaciones = Column(Text)
18 nick = Column(Text, nullable=False, unique=True)
19 password = Column(Text, nullable=False)
20 sexo = Column(Text, nullable=False)
21 fechanac = Column(Text, nullable=False)
22
23
24 roles_x_proyecto = relationship("ProyectoUsuarioRol")
25
26 - def __init__(self, ci, nombres, apellidos, nick, password, email, telefono, direccion, observaciones, sexo, fechanac):
27 """
28 Metodo de instancia constructor que inicializa los parametros del objeto usuario
29 @type self: usuario
30 @param self: referencia al objeto que llama el metodo en este caso usuario.
31 @type ci: Integer
32 @param ci: campo que almacenara la cedula del usuario.
33 @type nombres: Text
34 @param nombres: campo que almacenara los nombres del usuario.
35 @type apellidos: Text
36 @param apellidos: campo que almacenara los apellidos del usuario.
37 @type email: Text
38 @param email: campo que almacenara el correo electronico del usuario.
39 @type telefono: Integer
40 @param telefono: campo que almacenara el telefono del usuario.
41 @type direccion: Text
42 @param direccion: campo que almacenara la direccion del usuario.
43 @type observaciones: Text
44 @param observaciones: campo que almacenara alguna observacion sobre el usuario.
45 @type nick: Text
46 @param nick: campo que almacenara el nombre de usuario del usuario en el sistema.
47 @type password: Text
48 @param password: campo que almacenara la contrasenha del usuario en el sistema.
49 @type sexo: Text
50 @param sexo: campo que almacenara el sexo del usuario.
51 @type fechanac: Date
52 @param nick: campo que almacenara la fecha de nacimiento del usuario.
53 """
54 self.ci = ci
55 self.nombres = nombres
56 self.apellidos = apellidos
57 self.nick = nick
58 self.password = password
59 self.email = email
60 self.telefono = telefono
61 self.direccion = direccion
62 self.observaciones =observaciones
63 self.sexo = sexo
64 self.fechanac = fechanac
65
67 """
68 Metodo de instancia que elimina todas los relaciones de un registro de la tabla Usuarios
69 para que pueda ser eliminado.
70 @type self: usuario
71 @param self: referencia al objeto que llama el metodo en este caso usuario.
72 """
73
74 for p in self.proyectos:
75 DBSession.delete(p)
76
77 for r in self.roles:
78 DBSession.delete(r)
79
80 for ur in self.roles_x_proyecto:
81 DBSession.delete(ur)
82
88