Cintillo Institucional
Diferencias entre las revisiones 1 y 2
Versión 1 con fecha 2008-08-27 15:06:30
Tamaño: 8967
Editor: jvizcarrondo
Comentario:
Versión 2 con fecha 2008-08-27 15:26:42
Tamaño: 10304
Editor: jvizcarrondo
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 2: Línea 2:
 PRESENTACIÓN DE SEMINARIO DE LA PDSL DE FECHA 27/08/2008
 * [[#1|Lámina 1]]
 * [[#2|Lámina 2]]
 * [[#3|Lámina 3]]
 * [[#4|Lámina 4]]
 * [[#5|Lámina 5]]
 * [[#6|Lámina 6]]
 * [[#7|Lámina 7]]
 * [[#8|Lámina 8]]
 * [[#9|Lámina 9]]
 * [[#10|Lámina 10]]
 * [[#11|Lámina 11]]
 * [[#12|Lámina 12]]
 * [[#13|Lámina 13]]
 * [[#14|Lámina 14]]
 * [[#15|Lámina 15]]
 * [[#16|Lámina 16]]
 * [[#17|Lámina 17]]
 * [[#18|Lámina 18]]
 * [[#19|Lámina 19]]
 * [[#20|Lámina 20]]
 * [[#21|Lámina 21]]
 * [[#22|Lámina 22]]
 * [[#23|Lámina 23]]

----
{{seminario-1_1.jpg}}
'''Plataforma '''
'''para el '''
'''Desarrollo de '''
'''Software '''
'''Libre'''
1
[[#outline|Volver al índice]]
----
Plataforma para el Desarrollo de
Software Libre
 . PRESENTACIÓN DE SEMINARIO DE LA PDSL DE FECHA 27/08/2008
 * [[pdslseminario27082008#1|Lámina 1]]
 * [[pdslseminario27082008#2|Lámina 2]]
 * [[pdslseminario27082008#3|Lámina 3]]
 * [[pdslseminario27082008#4|Lámina 4]]
 * [[pdslseminario27082008#5|Lámina 5]]
 * [[pdslseminario27082008#6|Lámina 6]]
 * [[pdslseminario27082008#7|Lámina 7]]
 * [[pdslseminario27082008#8|Lámina 8]]
 * [[pdslseminario27082008#9|Lámina 9]]
 * [[pdslseminario27082008#10|Lámina 10]]
 * [[pdslseminario27082008#11|Lámina 11]]
 * [[pdslseminario27082008#12|Lámina 12]]
 * [[pdslseminario27082008#13|Lámina 13]]
 * [[pdslseminario27082008#14|Lámina 14]]
 * [[pdslseminario27082008#15|Lámina 15]]
 * [[pdslseminario27082008#16|Lámina 16]]
 * [[pdslseminario27082008#17|Lámina 17]]
 * [[pdslseminario27082008#18|Lámina 18]]
 * [[pdslseminario27082008#19|Lámina 19]]
 * [[pdslseminario27082008#20|Lámina 20]]
 * [[pdslseminario27082008#21|Lámina 21]]
 * [[pdslseminario27082008#22|Lámina 22]]
 * [[pdslseminario27082008#23|Lámina 23]]

----
 {{/wiki/seminario-1_1.jpg?action=content|seminario-1_1.jpg|width="100%",type="text/html"}} '''Plataforma ''' '''para el ''' '''Desarrollo de ''' '''Software ''' '''Libre''' 1 [[pdslseminario27082008#outline|Volver al índice]]

----
 Plataforma para el Desarrollo de Software Libre ''''''
Línea 40: Línea 34:
Línea 41: Línea 36:
'''Erwin Paredes'''
'''Juan Bastidas'''
'''Juan Vizcarrondo'''
2
[[#outline|Volver al índice]]
----
Plataforma para el Desarrollo de
Software Libre

'''Erwin Paredes''''''Juan Bastidas<<BR>>'''

''''''
'''Juan Vizcarrondo''' 2 [[pdslseminario27082008#outline|Volver al índice]]

----
 Plataforma para el Desarrollo de Software Libre
Línea 50: Línea 45:
Línea 51: Línea 47:
2.1. Componentes trac
2.1.1. Multiples proyectos
✔ Diseño
2.1.2. Plantillas de la metodología
✔ Diseño
✔ Implementación
2.2. Experiencias con actores externos
2.2.1. Caso CEIT
✔ OpenKomodo
2.2.2. Caso Cooperativa Tecnoguayana
[[#outline|Volver al índice]]
----
3
[[#outline|Volver al índice]]
----
Plataforma para el Desarrollo de
Software Libre
'''1.-A modo de '''
'''introducción'''
'''¿Con qué '''
'''Proyectos/Redes se '''
'''relaciona la'''
'''iona PDSL?'''

    
2.1. Componentes trac

        
2.1.1. Multiples proyectos ✔ Diseño

        
2.1.2. Plantillas de la metodología ✔ Diseño ✔ Implementación

    
2.2. Experiencias con actores externos

        
2.2.1. Caso CEIT ✔ OpenKomodo

        
2.2.2. Caso Cooperativa Tecnoguayana

        2.2.3 Coral Vision

3
[[pdslseminario27082008#outline|Volver al índice]]

----
 Plataforma para el Desarrollo de Software Libre

'''1.-A modo de ''' '''introducción''' '''¿Con qué ''' '''Proyectos/Redes se ''' '''relaciona la''' '''iona PDSL?'''
Línea 75: Línea 70:
[[#outline|Volver al índice]]
----
Plataforma para el Desarrollo de
Software Libre

[[pdslseminario27082008#outline|Volver al índice]]

----
 Plataforma para el Desarrollo de Software Libre
Línea 80: Línea 77:
[[#outline|Volver al índice]]
----
Plataforma para el Desarrollo de
Software Libre
'''2.-¿Qué estamos '''
'''haciendo?'''

 
[[pdslseminario27082008#outline|Volver al índice]]

----
 Plataforma para el Desarrollo de Software Libre

'''2.-¿Qué estamos ''' '''haciendo?'''
Línea 87: Línea 86:
[[#outline|Volver al índice]]
----
Plataforma para el Desarrollo de
Software Libre

[[pdslseminario27082008#outline|Volver al índice]]

----
 Plataforma para el Desarrollo de Software Libre

'''2.1-Componentes Trac''' ''''''

''' 2.1.1.-Múltiples ''' '''proyectos'''

7

[[pdslseminario27082008#outline|Volver al índice]]

----


 8

[[pdslseminario27082008#outline|Volver al índice]]

----
 '''VARIAS MANERAS DE ''' '''REALIZARLO'''

● Multiples proyectos en multiples ambientes y bases de datos.

 ● Multiples proyectos en multiples ambientes y una sola base de datos (varios esquemas o sufijos).

 ● Multiples proyectos en un solo ambiente y una sola base de datos

9

[[pdslseminario27082008#outline|Volver al índice]]

----


 10

[[pdslseminario27082008#outline|Volver al índice]]

----
 {{/wiki/seminario-11_1.jpg?action=content|seminario-11_1.jp|width="100%",type="text/html"}}Para el 15/10/2008

● Gestión Básica de Multiples Proyectos

● Gestión de usuarios y permisos por proyecto.

11

[[pdslseminario27082008#outline|Volver al índice]]

----
 Plataforma para el Desarrollo de Software Libre
Línea 92: Línea 142:
'''2.1.1.-Múltiples '''
'''proyectos'''
7
[[#outline|Volver al índice]]
----
8
[[#outline|Volver al índice]]
----
'''VARIAS MANERAS DE '''
'''REALIZARLO'''
● Multiples proyectos en multiples ambientes y
bases de datos.
● Multiples proyectos en multiples ambientes y
una sola base de datos (varios esquemas o
sufijos).
● Multiples proyectos en un solo ambiente y
una sola base de datos
9
[[#outline|Volver al índice]]
----
10
[[#outline|Volver al índice]]
----
{{seminario-11_1.jpg}}
Para el 15/10/2008
● Gestión Básica de
Multiples Proyectos
● Gestión de usuarios y
permisos por proyecto.
11
[[#outline|Volver al índice]]
----
Plataforma para el Desarrollo de
Software Libre
'''2.1-Componentes Trac'''
'''2.1.2.-Plantillas de la'''
''' Metodología'''

''' 2.1.2.-Plantillas de la''' ''' Metodología'''
Línea 130: Línea 146:
[[#outline|Volver al índice]]
----
Archivos para la creación de un .egg para Trac.
Cree los directorios del componente:
mkdir /directoriofuente/componente
mkdir /directoriofuente/componente/nombrecomponente
Escribir los archivos principal y sus derivados dentro de
/directoriofuente/componente/nombrecomponente:
cd /directoriofuente/componente/nombrecomponente
vim api.py
vim crearpaginas.py
vim __init__.py
Genere el archivo guía para la instalación en
/directoriofuente/componente
vim setup.py

[[pdslseminario27082008#outline|Volver al índice]]

----
 Archivos para la creación de un .egg para Trac. Cree los directorios del componente:

''
mkdir /directoriofuente/componente''

''
mkdir /directoriofuente/componente/nombrecomponente ''

Escribir los archivos principal y sus derivados dentro de /directoriofuente/componente/nombrecomponente:

''
cd /directoriofuente/componente/nombrecomponente''

''
vim api.py <<BR>>''

''
vim crearpaginas.py <<BR>>''

''
vim __init__.py ''

Genere el archivo guía para la instalación en /directoriofuente/componente

''
vim setup.py ''
Línea 146: Línea 171:
[[#outline|Volver al índice]]
----
Setup.py
from setuptools import setup
PACKAGE = 'gestion'
setup(name=PACKAGE,
description='Componente que ofrece la digitalizacion de la metodologia para
el desarrollo de softare libre',
keywords='trac plugin metodologia gestion',
version='0.1',
url=
'http://www.cenditel.gob.ve',
license='GPL',
author='Erwin Paredes',
author_email='eparedes@cenditel.gob.ve',
long_description="""
Metodologia para el desarrollo de Software Libre!
""",
packages=[PACKAGE],
package_data={PACKAGE : ['templates/*.cs']},
entry_points = {
'trac.plugins': [
'gestion.api = gestion.api',
'gestion.metodologia = gestion.metodologia'
]
},
14
install_requires=[ 'TracWebAdmin'
])
[[#outline|Volver al índice]]
----
Api.py
from trac.core import *
from trac.env import IEnvironmentSetupParticipant

[[pdslseminario27082008#outline|Volver al índice]]

----
 Setup.py

''
from setuptools import setup''

''
PACKAGE = 'gestion'''

''
setup(name=PACKAGE, ''

''
description='Componente que ofrece la digitalizacion de la metodologia para el desarrollo de softare libre', keywords='trac plugin metodologia gestion',''

''
version='0.1', ''

''url=''
'http://www.cenditel.gob.ve',

''
license='GPL', ''

''
author='Erwin Paredes',''

''
author_email=''' eparedes@cenditel.gob.ve ',

''
long_description=""" Metodologia para el desarrollo de Software Libre! """,''

''
packages=[PACKAGE], <<BR>>''

''
package_data={PACKAGE : ['templates/*.cs']}, <<BR>>''

''
entry_points = { 'trac.plugins': [ 'gestion.api = gestion.api', 'gestion.metodologia = gestion.metodologia' ] }, <<BR>>''

''install_requires=['' 'TracWebAdmin' ''])''

 [[pdslseminario27082008#outline|
14]]

[[pdslseminario27082008#outline|Volver al índice]]

----
 Api.py

from trac.core import * from trac.env

import IEnvironmentSetupParticipant
Línea 179: Línea 217:
Línea 180: Línea 219:
implements(IEnvironmentSetupParticipant)
version = 1
version_instalada = 0
nombre = "gestion_plugin_version"
def __init__(self):
# Inicializa la version en la base de datos.
db = self.env.get_db_cnx()
cursor = db.cursor()
cursor.execute('SELECT value FROM system WHERE name=%s',
(self.nombre,))
try:
self.version_instalada = int(cursor.fetchone()[0])
except:
self.version_instalada = 0
cursor.execute('INSERT INTO system (name,value) VALUES(%s,%s)',
(self.nombre, self.version_instalada))
db.commit()
db.close()
def necesita_modificacion(self):
return self.version_instalada < self.version
def modificar_db(self):
db = self.env.get_db_cnx()
cursor = db.cursor()
cursor.execute('UPDATE system SET value=%s WHERE name=%s',
(self.version, self.nombre))
db.commit()
db.close()
def do_crear_pagina(self):
15
objeto = CrearPaginasWiki(self.env, self.log)
[[
#outline|Volver al índice]]
----
Api.py
...
# IEnvironmentSetupParticipant methods
def environment_created(self):
"""Called when a new Trac environment is created."""
if self.environment_needs_upgrade(None):
self.upgrade_environment(None)
def environment_needs_upgrade(self, db):
"""Called when Trac checks whether the environment needs to be upgraded.
Should return `True` if this participant needs an upgrade to be
performed, `False` otherwise.
"""
return (self.necesita_modificacion())
def upgrade_environment(self, db):
"""Actually perform an environment upgrade.
Implementations of this method should not commit any database
transactions. This is done implicitly after all participants have
performed the upgrades they need without an error being raised.
"""
print 'Componente para la gestion necesita ser modificado'
print ' * Modificando BD'
self.modificar_db()
print 'Modificado'
16
[[
#outline|Volver al índice]]
----
Crearpaginas.py
from trac.core import *
class CreadorPaginasWiki:
"""Clase para crear los componentes"""
version = 1
nombre = "creador_paginas_wiki_version"
env = None
log = None
def __init__(self, env, log):
self.env = env
self.log = log
self.upgrade()
def upgrade(self):
# Chequear la version en la BD
db = self.env.get_db_cnx()
cursor = db.cursor()
cursor.execute("SELECT value FROM system WHERE name=%s", (self.nombre,))
try:
version = int(cursor.fetchone()[0])
except:
version = 0
cursor.execute("INSERT INTO system (name,value) VALUES(%s,%s)",
(self.nombre, version))
if version > self.version:
raise TracError("Error: Se ha ejecutado una version superior y genera conflictos "
"en la clase CreadorPaginasWiki."
17
[[
#outline|Volver al índice]]
----
Crearpaginas.py
# Se crea la pagina en el Wki
try:
if version < 1:
cursor.execute("INSERT INTO wiki ("
"name,"
"version,"
"time,"
"author,"
"ipnr,"
"text) "
"VALUES ("
"'metodologia',"
"1,"
"1211313153,"
"'trac'",
"'127.0.0.1'",
"'== Metodologia para el Desarrollo de Software Libre == "
" * Gestion[[BR]]"
" * AcuerdosProyectos[[BR]]"
" * DescripcionAplicacion[[BR]]"
" * AcuerdosEstandares[[BR]]"
" * EstudioFactibilidad[[BR]]"
" * NecesidadesProblemas[[BR]]"
" * PlanProyecto[[BR]]"
" * PriorizacionFuncionalidades[[BR]]"
" * PriorizacionRiesgos[[BR]]"
" * Administracion[[BR]]"
" * DescripcionPlataforma[[BR]]"
" * Desarrollo[[BR]]"
" * DefinicionRequerimientos[[BR]]"
" * DiagramaActividades[[BR]]"
" * DiagramaSecuencia[[BR]]"
" * ImplementacionComponentes[[BR]]"
" * PrototipoInterfaz[[BR]]"
" * DominioAplicacion[[BR]]"
18
" * ReportePruebas[[BR]]') ")
[[
#outline|Volver al índice]]
----
Base de datos del Trac
19
----
Instalacion del componente para Trac
Luego de Generar los archivos del componente se procede a su
instalación en el directorio de paquetes de python (site-packed):
cd /directoriofuentes/componente
python setup.py install
Luego generara el huevo para instalarlo en el ambiente de Trac:
cd /direcotoriofuentes/componente
python setup.py bdist_egg
cp dist/Traccomponente0.1-dev-py2.5.egg
/direcotorioambiente/proyecto/plugins
Modificar el trac.ini
vim /directorioambiente/proyecto/conf/trac.ini
Añadir la linea:
[componentes]
componente.* = enabled
20
[[
#outline|Volver al índice]]
----
Resultado:
21
[[
#outline|Volver al índice]]
----
Plataforma para el Desarrollo de
Software Libre
'''2.2.-Experiencia '''
'''con actores externos'''
'''Caso CEIT (Extensión para '''
'''OpenKomodo para componentes en <<BR>>Trac).'''
'''Caso Cooperativa Tecnoguayana '''
'''(traducción de openkomodo y la <<BR>>posible incorporación del framework <<BR>>Canaima).'''
'''Coral Vision (Framework de '''
'''Desarrollo)'''
22
[[
#outline|Volver al índice]]
----
Plataforma para el Desarrollo de
Software Libre
'''¿Preguntas?'''
23
[[
#outline|Volver al índice]]
----

implements(IEnvironmentSetupParticipant) version = 1 version_instalada = 0 nombre = "gestion_plugin_version" def __init__(self): # Inicializa la version en la base de datos. db = self.env.get_db_cnx() cursor = db.cursor() cursor.execute('SELECT value FROM system WHERE name=%s', (self.nombre,)) try: self.version_instalada = int(cursor.fetchone()[0]) except: self.version_instalada = 0 cursor.execute('INSERT INTO system (name,value) VALUES(%s,%s)', (self.nombre, self.version_instalada)) db.commit() db.close() def necesita_modificacion(self): return self.version_instalada < self.version def modificar_db(self): db = self.env.get_db_cnx() cursor = db.cursor() cursor.execute('UPDATE system SET value=%s WHERE name=%s', (self.version, self.nombre)) db.commit() db.close() def do_crear_pagina(self): 15 objeto = CrearPaginasWiki(self.env, self.log) [[pdslseminario27082008#outline|Volver al índice]]

----
 Api.py ... # IEnvironmentSetupParticipant methods def environment_created(self): """Called when a new Trac environment is created.""" if self.environment_needs_upgrade(None): self.upgrade_environment(None) def environment_needs_upgrade(self, db): """Called when Trac checks whether the environment needs to be upgraded. Should return `True` if this participant needs an upgrade to be performed, `False` otherwise. """ return (self.necesita_modificacion()) def upgrade_environment(self, db): """Actually perform an environment upgrade. Implementations of this method should not commit any database transactions. This is done implicitly after all participants have performed the upgrades they need without an error being raised. """ print 'Componente para la gestion necesita ser modificado' print ' * Modificando BD' self.modificar_db() print 'Modificado' 16 [[pdslseminario27082008#outline|Volver al índice]]

----
 Crearpaginas.py from trac.core import * class CreadorPaginasWiki: """Clase para crear los componentes""" version = 1 nombre = "creador_paginas_wiki_version" env = None log = None def __init__(self, env, log): self.env = env self.log = log self.upgrade() def upgrade(self): # Chequear la version en la BD db = self.env.get_db_cnx() cursor = db.cursor() cursor.execute("SELECT value FROM system WHERE name=%s", (self.nombre,)) try: version = int(cursor.fetchone()[0]) except: version = 0 cursor.execute("INSERT INTO system (name,value) VALUES(%s,%s)", (self.nombre, version)) if version > self.version: raise TracError("Error: Se ha ejecutado una version superior y genera conflictos " "en la clase CreadorPaginasWiki." 17 [[pdslseminario27082008#outline|Volver al índice]]

----
 Crearpaginas.py # Se crea la pagina en el Wki try: if version < 1: cursor.execute("INSERT INTO wiki (" "name," "version," "time," "author," "ipnr," "text) " "VALUES (" "'metodologia'," "1," "1211313153," "'trac'", "'127.0.0.1'", "'== Metodologia para el Desarrollo de Software Libre == " " * Gestion[[BR]]" " * AcuerdosProyectos[[BR]]" " * DescripcionAplicacion[[BR]]" " * AcuerdosEstandares[[BR]]" " * EstudioFactibilidad[[BR]]" " * NecesidadesProblemas[[BR]]" " * PlanProyecto[[BR]]" " * PriorizacionFuncionalidades[[BR]]" " * PriorizacionRiesgos[[BR]]" " * Administracion[[BR]]" " * DescripcionPlataforma[[BR]]" " * Desarrollo[[BR]]" " * DefinicionRequerimientos[[BR]]" " * DiagramaActividades[[BR]]" " * DiagramaSecuencia[[BR]]" " * ImplementacionComponentes[[BR]]" " * PrototipoInterfaz[[BR]]" " * DominioAplicacion[[BR]]" 18 " * ReportePruebas[[BR]]') ") [[pdslseminario27082008#outline|Volver al índice]]

----
 Base de datos del Trac 19

----
 Instalacion del componente para Trac Luego de Generar los archivos del componente se procede a su instalación en el directorio de paquetes de python (site-packed): cd /directoriofuentes/componente python setup.py install Luego generara el huevo para instalarlo en el ambiente de Trac: cd /direcotoriofuentes/componente python setup.py bdist_egg cp dist/Traccomponente0.1-dev-py2.5.egg /direcotorioambiente/proyecto/plugins Modificar el trac.ini vim /directorioambiente/proyecto/conf/trac.ini Añadir la linea: [componentes] componente.* = enabled 20 [[pdslseminario27082008#outline|Volver al índice]]

----
 Resultado: 21 [[pdslseminario27082008#outline|Volver al índice]]

----
 Plataforma para el Desarrollo de Software Libre '''2.2.-Experiencia ''' '''con actores externos''' '''Caso CEIT (Extensión para ''' '''OpenKomodo para componentes en <<BR>>Trac).''' '''Caso Cooperativa Tecnoguayana ''' '''(traducción de openkomodo y la <<BR>>posible incorporación del framework <<BR>>Canaima).''' '''Coral Vision (Framework de ''' '''Desarrollo)''' 22 [[pdslseminario27082008#outline|Volver al índice]]

----
 Plataforma para el Desarrollo de Software Libre '''¿Preguntas?''' 23 [[pdslseminario27082008#outline|Volver al índice]]

----



  • seminario-1_1.jpg Plataforma para el Desarrollo de Software Libre 1 Volver al índice


  • Plataforma para el Desarrollo de Software Libre

Avances al 27/08/08

Ana Rangel

Erwin ParedesJuan Bastidas

Juan Vizcarrondo 2 Volver al índice


  • Plataforma para el Desarrollo de Software Libre

1. Introducción

2. ¿Qué estamos haciendo?

  • 2.1. Componentes trac
    • 2.1.1. Multiples proyectos ✔ Diseño 2.1.2. Plantillas de la metodología ✔ Diseño ✔ Implementación
    2.2. Experiencias con actores externos
    • 2.2.1. Caso CEIT ✔ OpenKomodo 2.2.2. Caso Cooperativa Tecnoguayana 2.2.3 Coral Vision

3 Volver al índice


  • Plataforma para el Desarrollo de Software Libre

1.-A modo de introducción ¿Con qué Proyectos/Redes se relaciona la iona PDSL?

4

Volver al índice


  • Plataforma para el Desarrollo de Software Libre

5


  • Plataforma para el Desarrollo de Software Libre

2.-¿Qué estamos haciendo?

6

Volver al índice


  • Plataforma para el Desarrollo de Software Libre

2.1-Componentes Trac

2.1.1.-Múltiples proyectos

7

Volver al índice


  • 8

Volver al índice


  • VARIAS MANERAS DE REALIZARLO

● Multiples proyectos en multiples ambientes y bases de datos.

  • ● Multiples proyectos en multiples ambientes y una sola base de datos (varios esquemas o sufijos). ● Multiples proyectos en un solo ambiente y una sola base de datos

9

Volver al índice


  • 10

Volver al índice


  • seminario-11_1.jpPara el 15/10/2008

● Gestión Básica de Multiples Proyectos

● Gestión de usuarios y permisos por proyecto.

11

Volver al índice


  • Plataforma para el Desarrollo de Software Libre

2.1-Componentes Trac

2.1.2.-Plantillas de la Metodología

12

Volver al índice


  • Archivos para la creación de un .egg para Trac. Cree los directorios del componente:

mkdir /directoriofuente/componente

mkdir /directoriofuente/componente/nombrecomponente

Escribir los archivos principal y sus derivados dentro de /directoriofuente/componente/nombrecomponente:

cd /directoriofuente/componente/nombrecomponente

vim api.py

vim crearpaginas.py

vim init.py

Genere el archivo guía para la instalación en /directoriofuente/componente

vim setup.py

13

Volver al índice


  • Setup.py

from setuptools import setup

PACKAGE = 'gestion

setup(name=PACKAGE,

description='Componente que ofrece la digitalizacion de la metodologia para el desarrollo de softare libre', keywords='trac plugin metodologia gestion',

version='0.1',

url=http://www.cenditel.gob.ve',

license='GPL',

author='Erwin Paredes',

author_email= eparedes@cenditel.gob.ve ',

long_description=""" Metodologia para el desarrollo de Software Libre! """,

packages=[PACKAGE],

package_data={PACKAGE : ['templates/*.cs']},

entry_points = { 'trac.plugins': [ 'gestion.api = gestion.api', 'gestion.metodologia = gestion.metodologia' ] },

install_requires=[ 'TracWebAdmin' ])

Volver al índice


  • Api.py

from trac.core import * from trac.env

import IEnvironmentSetupParticipant

from crearpaginas import CreadorPaginasWiki

class GestionSetupParticipant(Component):

implements(IEnvironmentSetupParticipant) version = 1 version_instalada = 0 nombre = "gestion_plugin_version" def init(self): # Inicializa la version en la base de datos. db = self.env.get_db_cnx() cursor = db.cursor() cursor.execute('SELECT value FROM system WHERE name=%s', (self.nombre,)) try: self.version_instalada = int(cursor.fetchone()[0]) except: self.version_instalada = 0 cursor.execute('INSERT INTO system (name,value) VALUES(%s,%s)', (self.nombre, self.version_instalada)) db.commit() db.close() def necesita_modificacion(self): return self.version_instalada < self.version def modificar_db(self): db = self.env.get_db_cnx() cursor = db.cursor() cursor.execute('UPDATE system SET value=%s WHERE name=%s', (self.version, self.nombre)) db.commit() db.close() def do_crear_pagina(self): 15 objeto = CrearPaginasWiki(self.env, self.log) Volver al índice


  • Api.py ... # IEnvironmentSetupParticipant methods def environment_created(self): """Called when a new Trac environment is created.""" if self.environment_needs_upgrade(None): self.upgrade_environment(None) def environment_needs_upgrade(self, db): """Called when Trac checks whether the environment needs to be upgraded. Should return True if this participant needs an upgrade to be performed, False otherwise. """ return (self.necesita_modificacion()) def upgrade_environment(self, db): """Actually perform an environment upgrade. Implementations of this method should not commit any database transactions. This is done implicitly after all participants have performed the upgrades they need without an error being raised. """ print 'Componente para la gestion necesita ser modificado' print ' * Modificando BD' self.modificar_db() print 'Modificado' 16 Volver al índice


  • Crearpaginas.py from trac.core import * class CreadorPaginasWiki: """Clase para crear los componentes""" version = 1 nombre = "creador_paginas_wiki_version" env = None log = None def init(self, env, log): self.env = env self.log = log self.upgrade() def upgrade(self): # Chequear la version en la BD db = self.env.get_db_cnx() cursor = db.cursor() cursor.execute("SELECT value FROM system WHERE name=%s", (self.nombre,)) try: version = int(cursor.fetchone()[0]) except: version = 0 cursor.execute("INSERT INTO system (name,value) VALUES(%s,%s)", (self.nombre, version)) if version > self.version: raise TracError("Error: Se ha ejecutado una version superior y genera conflictos " "en la clase CreadorPaginasWiki." 17 Volver al índice



  • Base de datos del Trac 19


  • Instalacion del componente para Trac Luego de Generar los archivos del componente se procede a su instalación en el directorio de paquetes de python (site-packed): cd /directoriofuentes/componente python setup.py install Luego generara el huevo para instalarlo en el ambiente de Trac: cd /direcotoriofuentes/componente python setup.py bdist_egg cp dist/Traccomponente0.1-dev-py2.5.egg /direcotorioambiente/proyecto/plugins Modificar el trac.ini vim /directorioambiente/proyecto/conf/trac.ini Añadir la linea: [componentes] componente.* = enabled 20 Volver al índice



  • Plataforma para el Desarrollo de Software Libre 2.2.-Experiencia con actores externosCaso CEIT (Extensión para OpenKomodo para componentes en
    Trac).Caso Cooperativa Tecnoguayana (traducción de openkomodo y la
    posible incorporación del framework
    Canaima).Coral Vision (Framework de Desarrollo) 22 Volver al índice



pdslseminario27082008 (última edición 2008-08-28 14:39:39 efectuada por eparedes)