Curso introductorio de desarrollo de productos archetypes para plone. Herramientas UML, introducción a diagramas uml para desarrollo archetypes, ArgoUml, archgenxml, vocabularios, workflow.
Buenas prácticas para la construcción de softwareIker Canarias
Esta presentación sobre "buenas prácticas en la construcción de software" se basa principalmente en los "Principios de buena programación" de Christopher Diggins. Consejos generales sobre buenas prácticas, pero centrados en Java al final de la presentación.
Presentació en Power Point del Tema 5 (Els personatges) de l'assignatura NARRATIVA I GUIO AUDIOVISUAL, de 3r Grau de Comunicació Audiovisual (Universitat Rovira i Virgili).
The Q2-2015 Expert Guide analyses the developments between March and June 2015 that have helped shape the current global economic outlook and altered the landscape for business activity moving into the second half of the year. Highlighted topics includes: the fight against corruption and its impact on the environment, the impact of the drop in Brent crude oil prices in the UK, and the current legal situation in Chile with specific reference to arbitration law.
Buenas prácticas para la construcción de softwareIker Canarias
Esta presentación sobre "buenas prácticas en la construcción de software" se basa principalmente en los "Principios de buena programación" de Christopher Diggins. Consejos generales sobre buenas prácticas, pero centrados en Java al final de la presentación.
Presentació en Power Point del Tema 5 (Els personatges) de l'assignatura NARRATIVA I GUIO AUDIOVISUAL, de 3r Grau de Comunicació Audiovisual (Universitat Rovira i Virgili).
The Q2-2015 Expert Guide analyses the developments between March and June 2015 that have helped shape the current global economic outlook and altered the landscape for business activity moving into the second half of the year. Highlighted topics includes: the fight against corruption and its impact on the environment, the impact of the drop in Brent crude oil prices in the UK, and the current legal situation in Chile with specific reference to arbitration law.
Este tutorial paso a paso para poder trabajar en Exelearning diseñado para la creación de contenidos educativos para los procesos de enseñanza aprendizaje.
Taller de Modelamiento y Diagramación de Sistemas Automatizados con la utilización de las herramientas CASE Rational Rose Actividad N.- 1
www.modelado.pnfi.org
Esta charla presenta una selección de distintas charlas de Droidcon NYC, realizada en New York a fines de Agosto de 2015. La selección está orientada a desarrolladores Android y a desarrolladores en general, puesto que las lecciones probablemente trasciendan a la plataforma.
Microservices y la era Post Industrial de la WebRoberto Allende
5 años después del keynote de Jacob Kaplan-Moss en PyConAr, la web ha evolucionado y su desarrollo ha mejorado significativamente siendo mucho menos "difícil, repetitivo y aburrido". En la charla se presentarán avances recientes y se argumentará por qué y cómo el desarrollo web está abandonado su estadío "Industrial" y se está dirigiendo hacia uno "Post-industrial", donde los servicios y el "outsourcing computacional" están ganando protagonismo, proponiendo nuevas herramientas y formas de desarrollar. Más concretamente, se presentarán patrones de arquitectura y diseño junto con implementaciones de aplicaciones en Python.
Emprender en Argentina: 8 creencias y algunas experienciasRoberto Allende
La charla se centra en dos preguntas a las cuales se intenta responder desde la perspectiva de un emprendedor cordobes: Que significa emprender en Argentina. Que habilidades tiene que tener un emprendedor.
Qué es innovar y cuan importante es saber comunicar una propuesta de valor. Cómo comunicar propuestas de valor - Material de soporte de la charla basada en el artículo disponible en http://robertoallende.com/es/como-comunicar-propuestas-de-valor
PloneGov: Cooperación, participación y Software Libre en Gobierno Roberto Allende
PloneGov es un proyecto que reune organizaciones gubernamentales europeas, americanas y africanas que logran cooperación intergubernamental y participación ciudadana implementando estrategias y herramientas tecnológicas basadas de Software Libre en gobierno. En la charla se presentarán tecnologías, herramientas, experiencias, casos de éxitos y oportunidades para entidades Latinoamericanas.
Plone es un producto que provee una plataforma para el desarrollo de aplicaciones web centradas en contenidos. Plone es software libre y está desarrollado sobre Zope, un servidor de aplicaciones web programado en Python. En el desarrollo de aplicaciones web orientadas a contenido convergen varias tecnologías con las que el programador debe estar familiarizado. En esta charla se hará una breve reseña de las tecnologías involucradas en el desarrollo web usando Plone; se darán ejemplos de tareas típicas que debe enfrentar el desarrollador de una aplicación web construida sobre Plone; y se expondrán ejemplos del uso de Plone en proyectos reales.
Qué es catedral y bazaar, promesas, reusabilidad, caso de linux, debian y plone, requerimientos, comparación con XP, ecosistema, planificación o ciclos de lanzamientos, pep, plep
Plone visto desde el ZMI. Instalación paso a paso de Plone 2.5 en windows. Como configurar puntos de montaje. zope.conf. Zope Management Interface - zmi. Estructura de un sitio, portlets, tipos de contenido. Arquitectura de plone, Zope desde el sistema de archivos, portal_workflow, error_log, portal_catalog, usuarios, roles y grupos,
Charla de introducción a zope3: Qué es Zope 3 - Propositos de la plataforma, Aplicación, Qué es Grok, como desarrollar una aplicación con Grok, vistas, zcmls, expresiones tal, generando html desde python, formularios, almacenamiento de datos, contenedores,
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...Roberto Allende
12 Comunas belgas y 2 Mairies francesas participan en el proyecto CommunesPlone. De forma similar el proyecto UdalPlone reune a municipios del País Vasco, PloneGov.ch en Suiza. Recientemente estos tres proyectos se fucionaron en PloneGov.org. La iniciativa tiene como objetivo ganar independencia de proveedores IT desarrollando ellos mismos y de forma cooperativa, aplicaciones y sitios web para su propio uso y el de sus ciudadanos. PloneGov está desarrollado sobre dos renombradas herramientas libres: Zope (http://www.zope.org) y Plone (http://www.plone.org). En la charla se describirá en que consiste el proyecto, como así tambien proyectos similares que están integrándose a este junto con las oportunidades de participación para municipios latinoamericanos.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
Estructuras básicas_ conceptos básicos de programación.pdf
Desarrollo de Productos con Archetypes y ArchGenXML
1. menttes
corporate training
Desarrollo de Productos con
Archetypes y ArchGenXML
Sebastian, Ferreyra
info@menttes.com
2. ¿Qué es UML?
UML son las siglas para Unified Modeling Language;
que en castellano quiere decir: Lenguaje de
Modelado Unificado. Para comprender que es el
UML basta con analizar cada una de las palabras
que lo componen por separado.
menttes
3. Lenguaje
UML es, precisamente, un lenguaje. Lo que implica
que éste cuente con una sintaxis y una semántica.
Por lo tanto, al modelar un concepto en UML,
existen reglas sobre cómo deben agruparse los
elementos del lenguaje y el significado de esta
agrupación.
menttes
4. Modelado
UML es visual. Mediante su sintaxis se modelan
distintos aspectos del mundo real que permiten
una mejor interpretación y entendimiento de éste.
menttes
5. Unificado
Por que unifica varias técnicas de modelado en una
única.
menttes
6. UML Tools
ArchGenXML procesa modelos almacenados en
formato XMI. Este formato XML no esta pensado para
ser escrito en un editor de texto plano ni en un editor
basado en XML, por lo tanto se debe usar una
herramienta de diseño UML. A continuación damos un
listado de las herramientas UML mas conocidad
menttes
7. UML Tools - Poseidon
1) Software comercial
2) Escrito en Java, corre en la mayoria de las
plataformas
3) Basado en ArgoUML
4) Almacena el modelo en formato XMI + información
del diagrama en archivos .zuml (archivos zip)
5) Es bastante lento
6) Necesita mucha memoria y una rapida CPU
Website y download - www.gentleware.com
menttes
8. UML Tools - ArgoUML
1) Software libre
2) Escrito en Java, corre en la mayoría de las
plataformas
3) Almacena el modelo en formato XMI + información
del diagrama en archivos .zuml (archivos zip)
4) No posee undo
5) Conocidas, pero no criticas bugs
Website y download - argouml.tigris.org
menttes
9. UML Tools - ObjectDomain
1) Comercial, demo por tiempo limitado <= 30 días
2) Escrito en Java, corre en la mayoría de las
plataformas
3) Se necesita exportar el modelo desde su nativo
.odm formato
Website y download - objectdomain.com
menttes
10. UML Tools - Powerdesigner
1) Version XMI 1.1
2) Se necesita exportar el modelo
Website y download - sybase.com
menttes
11. UML Tools - Umbrello
1) Software libre
2) Corre bajo Linux/KDE
3) Almacena el modelo en formato XMI
4) Hasta la version 1.4 Umbrello no soportaba de
manera correcta el formato XMI
Website y download - uml.sourceforge.net
menttes
12. Una breve introducción a UML
UML (Lenguaje de Modelado Unificado), es un lenguaje
gráfico diseñado para describir software atraves de
diagramas. Tenemos varios tipos de diagramas, pero los
mas relevantes para ArchGenXML son:
- Diagrama de clases
- Diagrama de estados
El diagrama de clases es utilizado para dibujar interfaces,
content types (representados como clases) y herramientas
(representadas como clases con el estereotipo portal_tool),
así como los atributos y operaciones publicas en los
mismos. Además de poder asociar los diagramas para ser
contenidos o referenciados entre si.
menttes
17. ArgoUML - Windows XP Download
Descargamos ArgoUML 0.24: http://argouml-downloads.tigris.org/argouml-0.24/
menttes
18. ArgoUML – Ejecutar Jar File
Para ejecutar ArgoUML hacemos doble click en el archivo argouml
menttes
19. ArgoUML – Descargando archgenxml tagged values
1) Descargamos argouml_profile:
http://plone.org/products/archgenxml/issues/30/18/at_download/attachment/
2) Copiamos el archivo argouml_profile.xmi dentro de la carpeta donde tenemos el
ejecutable argouml.jar
menttes
20. ArgoUML – Creando un .zargo con argouml_profile
1) Abrimos ArgoUML
2) Vamos a “Archivo” -> “Guardar el proyecto como ...” y elegimos el nombre de
nuestro proyecto (Ejemplo ArtistSite.zargo)
menttes
21. ArgoUML – Creando un .zargo con argouml_profile
3) Luego lo que hacemos es pararnos encima del archivo .zargo que acabamos de crear
y con el boton derecho del mouse elegimos la opción “Abrir con” -> “Elegir
programa...”, por el momento seleccionamos el “Bloc de Notas” como programa por
defecto para abrir los archivos .zargo para que Windows pueda identificarlos con algún
formato.
4) A continuación dentro de la misma carpeta en donde se encuentra el archivo .zargo,
elegimos el tab “Tipos de archivo” y elegimos nuestro archivo ZARGO.
menttes
22. ArgoUML – Creando un .zargo con argouml_profile
5) Clickeamos en “Opciones avanzadas”, luego seleccionamos “open” y a continuación
clickeamos en “Editar”, lo que hacemos es modificar “Aplicación utilizada para
realizar la acción” por:
quot;C:Program FilesJavajre1.5.0_06binjavaw.exequot; quot;-
Dargo.defaultModel=your_PC_pathargouml_profile.xmiquot; -jar
quot;your_PC_pathArgoUML-0.20argouml.jarquot; quot;%Lquot;
menttes
23. ArgoUML – Creando un .zargo con argouml_profile
Listo, ahora podemos ver dentro de nuestro modelo
las opciones AGX en ArgoUML, y cada ves que
abramos un archivo .zargo se cargara con todos estos
tag de manera automática
menttes
24. ¿Que es ArgoUML?
ArgoUML es una herramienta utilizada en el
modelaje de sistemas, mediante la cual se realizan
diseños en UML llevados acabo en el análisis y pre-
diseño de Sistemas de Software.
menttes
25. ¿Porque ArgoUML?
● Maduro – Este soporta importantes características
● Es relativamente liviano. Lo cual es muy
importante.
● El precio es muy bueno. Es gratis.
menttes
33. ¿Que es ArchGenXML?
● Es un generador de código para productos Plone,
basados en Archetypes.
● Analiza modelos UML en el XMI-FORMATO
(.xmi.zargo.zuml), creados con ArgoUML,
menttes
34. ¿Porqué usar ArchGenXML? (parte 1)
• Quieres ahorrarte tiempo
• Eres un programador bago
• No te gusta re inventar la rueda
• No te gusta copiar y pegar código
• Haces uso de referencias e interfaces
menttes
35. ¿Porqué usar ArchGenXML? (parte 2)
• Tienes proyectos grandes con muchos content
types diferentes
• Quieres o necesitas una correcta y bien
documentada interfase para tu producto
• Quieres mantener tu proyecto en el futuro sin
tener un dolor de cabeza
menttes
38. Agregando un nuevo Artist
1) Copiar la carpeta ArtistSite en el directorio Products
2) Reiniciar Zope
3) Instalar ArtistSite usando QuickInstaller
4) Agregar un nuevo Artist
menttes
41. Moviendo el modelo al producto
1) Dentro de la carpeta ArtistSite crear una sub-
carpeta llamada model
2) Copiar el archivo ArtistSite.zargo dentro de la
carpeta model
menttes
43. Agregar ATVM como dependencia
1) En la raíz del producto agregar el archivo
AppConfig.py
2) Editar AppConfig.py y agregar la linea:
DEPENDENCIES = ['ATVocabularyManager']
3) Reiniciar Zope
4) Reinstalar ArtistSite
menttes
47. Contenedor
Usaremos el rombo solido para hacer una estricta
contención, instancias del tipo Artist pueden ser
agregadas solo en instancias del tipo 'Artists'
menttes
56. Agregando una nueva Suggestion
1) Copiar la carpeta GiveSuggestion en el directorio Products
2) Reiniciar Zope
3) Instalar GiveSuggestion usando QuickInstaller
4) Agregar una nueva Suggestion
menttes
58. Workflow
Lo que haremos ahora es agregarle workflow a
nuestro content type Suggestion.
Definiremos los estados Submitted, Approved,
Complete y Rejected con sus respectivas
transacciones.
menttes
59. Agregando el diagrama de estado
1) Dentro de nuestro clase Suggestion, clickeamos en
Crear -> Diagrama de estado
menttes
60. Agregando un estado inicial
2) Agregamos un estado inicial, solo debemos clickear
en el circulo de color negro solida, luego le
ponemos el nombre Creating
menttes
61. Agregando un estado simple
3) A continuación agregamos un estado simple, este
luce como una caja redonda con una linea
horizontal en el medio. Llamar a esta Submitted
menttes
62. Otro estado simple
4) A la derecha de Submitted agregamos otro estado
simple, lo llamaremos a este Approved
menttes
63. Agregando estados finales
5) A la derecha de Approved agregamos un estado
final (circulo negro con contorno blanco) al cual
llamaremos Complete
6) Abajo de Approved agregamos un estado final al
cual llamaremos Rejected
menttes
64. Nombrando las transiciones
7) Lo que hacemos a continuación es nombrar las
transiciones, la trancision que va al estado
Submitted se llamara Submit, la transición que va
al estado Approved se llamara Approve, la
transición que va al estado Rejected se llamara
Reject y por ultimo la transición que va al estado
Completed se llamara Complete
menttes
65. Permisos de los usuarios
8) Ahora vamos a definir lo que cada rol puede ver,
los usuarios Anonimos podran Crear (un estado
inicial) y requerir un Submit (una transición de
estado), pero no podrán Aprobar una suggestion.
Los Managers y Reviewer podrán
approve/reject/complete la suggestions. Pero los
usuarios anonimos podrán ver el pedido durante
todo el proceso.
menttes
70. Quien puede modificar los estados
9) Definiremos guardas (guards), para saber que
estado es el que puede setear cada usuario en el
content type. Para esto nos pararemos en cada una
de las transacciones (menos en la inicial Submit) y
agregaremos una guard:
guard_roles:Reviewer;Manager
menttes
75. Agregando una nueva Suggestion
1) Copiar la carpeta GiveSuggestion en el directorio Products
2) Reiniciar Zope
3) Instalar GiveSuggestion usando QuickInstaller
4) Agregar una nueva Suggestion
menttes
76. Anónimos Suggestion
Lo que haremos ahora es permitirle a los usuarios
anónimos agregar suggestions a nuestro sitio. Pero no
en cualquier lugar sino mas bien en una carpeta que
crearemos para que se agreguen dentro de esta.
menttes
77. Carpeta Suggestion
1) En nuestra instancia Plone agregamos una carpeta
en la raíz llamada Suggestions. Y dentro de esta
creamos otra carpeta llamada Archive.
menttes
78. Carpeta Suggestion - Security
2) En nuestro ZMI:
a) Navegamos hasta la carpeta suggestions/archive
y clickeamos en el tab Security, buscamos el
permiso Add portal content, Desclikeamos el box
Aquire a la izquierda y clickeamos los boxes
Anonymous y Authenticated a la derecha.
menttes
79. Carpeta Suggestion - Security
b) Buscamos ahora el permiso Modify portal
content. Asegurarse de que Aquire esta
desclickeado y clickear Anonymous y
Authenticated.
menttes
80. Carpeta Suggestion - Security
c) En la parte de mas abajo de la pagina
clickeamos en el boton Save Changes para
guardar los cambios.
Si abrimos el Sitio Plone con otro navegador o nos
deslogeamos del sitio que estamos utilizando,
podremos ver que los usuarios anónimos pueden
ahora agregar suggestions dentro de la carpeta
Archive. Y poner el contenido en estado Submited.
Pero tenemos un problema, los usuarios anónimos
pueden editar dentro de Archive y eso no lo
queremos.
menttes
81. Negar edición a los Anónimos
El objetivo es hacer que los usuarios anónimos no
puedan editar suggestions, para esto agregaremos
dos script dentro de nuestro producto GiveSuggestion
que lo que harán es modificar de manera automática
el estado de las suggestion al ser creadas a Submited,
ya que en ese estado hemos definido que los únicos
que pueden modificar los objetos son los Managers y
Reviewers.
Es importante tener en cuenta que estos scripts se
pueden borrar si regeneramos el producto con
ArchGenXML por lo tanto debemos mantener una
copia del producto en algun lado.
menttes
84. Editamos Install.py
En ProductsGiveSuggestionExtensionsInstall.py
buscamos la linea:
print >>out,'no workflow install'
y debajo de esta ponemos:
controller = getToolByName(self, 'portal_form_controller')
addFormControllerAction(self, out,
controller,
template = 'validate_integrity',
status = 'success',
contentType = 'Suggestion',
button = '',
actionType = 'traverse_to',
action = 'string:suggestion_post')
menttes
85. Editamos Install.py
En la parte inferior del archivo agregamos el código:
def addFormControllerAction(self, out, controller, template, status,
contentType, button, actionType, action):
quot;quot;quot;Add the given action to the portalFormControllerquot;quot;quot;
controller.addFormAction(template, status, contentType, button, actionType, action)
print >> out, quot;Added action %s to %squot; % (action, template)
Listo, si probamos ahora agregar una suggestion
como usuarios anónimos, no podremos editarlo.
menttes
87. Objetivo
El objetivo es crear un nuevo content type Document
que herede todos los campos de ATDocument y a su
ves añadir un par de campos adicionales
menttes
90. Moviendo los nuevos campos debajo de title
Para mover los nuevos campos debajo del campo title
debemos utilizar la función moveField, en:
ProductsATAGAEXDocumentcontentAGAEXDocument.py
luego de la definición de nuestro schema, ponemos
AGAEXDocument_schema.moveField('autor', after='title')
AGAEXDocument_schema.moveField('conocimiento', after='autor')
AGAEXDocument_schema.moveField('publico', after='conocimiento')
AGAEXDocument_schema.moveField('email', after='publico')'
menttes
97. Agregando un nuevo Article
1) Copiar la carpeta ATArticle en el directorio Products
2) Reiniciar Zope
3) Instalar ATArticle usando QuickInstaller
4) Agregar un nuevo Article
menttes
102. Borrando el schemata default
Para borrar el schemata default primero debemos
mover los atributos id y title a nuestro schemata
article, en:
ProductsATArticlecontentArticle.py
luego de la definición de nuestro schema, ponemos
Article_schema['id'].schemata = 'article'
Article_schema['title'].schemata = 'article'
menttes
104. Ocultando title en Article
Lo que haremos a continuación es borrar el atributo
title de nuestro content type Article, en:
ProductsATArticlecontentArticle.py
luego de la definición de nuestro schema, ponemos
Article_schema['title'].required = 0
Article_schema['title'].widget.visible = {'edit': 'hidden', 'view': 'invisible'}
menttes
106. Que paso con el id de nuestro ATArticle?
Al haber ocultado el atributo title de nuestro
content type, Plone utiliza un id por defecto que
lo obtiene de manera automática de acuerdo a
la fecha del día en que se crea el objeto.
menttes
107. Pisando title en Article
Lo que haremos sera modificar el atributo title
cambiándole el nombre a Author, en:
ProductsATArticlecontentArticle.py
luego de la definición de nuestro schema, ponemos
Article_schema['title'].widget.label = 'Author'
#Article_schema['title'].required = 0
#Article_schema['title'].widget.visible = {'edit': 'hidden', 'view': 'invisible'}
menttes
113. ¿Qué es un esquema Archetypes ?
El corazón de archetypes es su esquema (secuencia
de campos).
El esquema trabaja como una definición de lo que su
objeto contendrá y como presentar la información
contenida.
menttes
114. Esquema y Esquema Base
Para crear un esquema se pasan los campos
que se desean dentro del objeto esquema
como una tupla.
Ej.:
Schema((
StringField('body',
widget = TextAreaWidget(label='Body')
),
# otros campos aquí
))
menttes
116. Fields
Todos los campos son instanciados de la misma
manera, creando un campo y pasándole a este un
parámetro requerido: name
Ej.:
from Products.Archetypes.public import IntegerField
# un simple campo para edad
age = IntegerField('age')
menttes
117. Widgets
Una widget contiene la información acerca de cómo
será representado visualmente el objeto
Ej.:
from Products.Archetypes.public import IntegerField
from Products.Archetypes.public import IntegerWidget
# un simple campo para la edad
age = IntegerField('age',
widget=IntegerWidget(label=quot;Your agequot;)
)
menttes
118. Ejemplo de Archetypes: Artist
schema = Schema((
StringField('name'),
ImageField('photo'),
LinesField('instrument'),
))
class Artist(BaseContent)
schema = BaseSchema + schema
registerType(Artist,PROJECTNAME)
menttes
120. Ejemplo: Artist paso a paso
Products
|
Artist
|
__init__.py
|
Artist.py
|
config.py
|
Extension
|
__init__.py
|
menttes
Install.py
121. Paso 1) Directorio Artist
Lo primero que debemos hacer es ir dentro de
nuestro directorio de productos Plone y crear una
carpeta con el nombre “Artist”
Ejemplo: /var/www/zope/plone-2.1.1/Product/Artist
(Aunque podemos crearla en cualquier lado y luego
tirarla dentro de “Product”)
menttes
127. Bien ya tenemos nuestro producto Plone listo con
nuestro content type definido mediante esquemas.
Ahora veamos como hacer el producto que hemos
creado instalable.
menttes
128. Paso 6) Install.py
Bien, primero debemos crear una nueva carpeta
Extensions dentro de nuestra carpeta Artist. Ahora
si, dentro de esta agregamos Install.py:
1 from Products.Artist.config import PROJECTNAME
2 from Products.Archetypes.public import listTypes
3 from Products.Archetypes.Extensions.utils import installTypes
4 from StringIO import StringIO
5 def install(self):
6 out = StringIO()
7 installTypes(self, out,
8 listTypes(PROJECTNAME),
9 PROJECTNAME)
10 print >> out, quot;Successfully installed %s.quot; % PROJECTNAME
11 return out.getvalue()
menttes
129. Listo! Hemos terminado.
Ahora vamos a probarlo, para esto reiniciemos
nuestra instancia Zope, dentro de Plone vamos al
ZMI, luego a portal_quickinstaller e instalamos
nuestro nuevo producto.
En la front-page vamos a nuestra barra de
contenidos 'drop-down list' y cargamos un nuevo
content type Artist!
menttes
130. Material leido para ArchGenXML/ArgoUML
http://plone.org/documentation/tutorial/archgenxml-getting-started/tutorial-all-pages
http://plone.org/products/archgenxml/documentation/how-to/setting-up-argouml-to-provide-tagg
http://plone.org/products/archgenxml/issues/30
http://plone.org/documentation/tutorial/picking-archetypes-widgets/tutorial-all-pages
http://plone.org/documentation/tutorial/archgenxml-getting-started/archgenxmlquickref
http://plone.org/products/archgenxml/documentation/how-to/subclassing-atcontenttypes
http://plone.org/documentation/tutorial/anonymously-adding-custom-content-types-with-argoum
http://oodt.jpl.nasa.gov/wiki/display/edrn/UML+to+Portal+in+a+Few+Easy+Steps
http://www.jazkarta.com/presentations/ArchGenXML-ArgoUML.pdf
http://plone.org/documentation/how-to/make-view-page-use-schemata-declarations/?searchterm
http://plone.org/products/archetypes/documentation/how-to/title-less-type
menttes