SlideShare uma empresa Scribd logo
1 de 26
   
Plomino
How to easily build Plone custom applications
through the web
with small development knowledge
Eric BREHAULT – Plone Conference 2010
   
Plone is so powerful
With no Zope/Plone development knowledge and good
Plone usage knowledge, you can build a powerful
intranet:
● you can structure the site easily,
● you can manage users access rights and workflows in a very
granular way,
● you can extend Plone standard features with a lot of excellent
products.
   
But you might need a custom app
Your intranet is just perfect, but at some point, you need a
purchase management application.
Of course, you want this application to be integrated
into your intranet.
What can you do ?
   
Create a content type ?
Plone is a CMS, a purchase request might be considered as a
content-type.
Let's go:
1 schema (made with ArchgenXML or Dexterity)
+ few collections
+ 1 workflow (made with uworth.northstar)
= approximately what you need
   
Not that easy
Even if you do not necessarily need to be a developer to use
the mentionned tools, it will still imply you have a good
knowledge of:
● What a schema is.
● How Plone workflows work.
● How to deploy custom products.
   
Will it fit the needs ?
Theoretiocally, the “Purchase request is just a content-type”
approach should work.
Practically, you will have to deal with hundreds of small
and funny extra-requirements:
● the request form has 2 specific fields when you order furnitures,
● the approval workflow is not the same if you belong to the HR
department, unless the manager is in vacation,
● the price list is provided in a monthly updated CSV file stored on a LAN
shared disk,
● Etc.
   
Will it fit the needs ?
So, practically, you will have to heavily tune the basic
content-type behaviour.
And if you are not a Plone expert, you are lost.
   
One could oppose that what has been described here is not a
simple application but a quite complex one.
If complex applications cannot be easily produced by non
Plone experts, that is fair enough.
My opinion:
● It is not a complex case, it is just the difference between
a theorical case and a real case.
● Most part of time, real applications are not content-
types.
● Non Plone experts must be able to produce real
business applications.
"Let no man ignorant of Plone enter here."
Plato
   
● Plomino allows to develop, deploy and maintain custom
applications entirely from the Plone web interface.
● There is no schema, no data model, the application
designer does not have to worry about the persistence,
he/she will design forms, data will be saved accordingly.
● Everything can be scripted in order to adapt the
behaviour to fit the actual needs.
Plomino principles
   
1.Add a new Plomino “database” as any Plone content-type,
➔ The database is the root element which support the entire
application.
2.Design some “forms” in TinyMCE,
➔ A form offers a layout and a set of fields.
3.Forms allow to create “documents”, or provide useful
screens (menu, search, reports, etc.),
➔ Documents are just a set of items. The items may match
the form fields, or not.
4.Create some “views” to list / filter / sort the documents in
different ways.
Create a Plomino application
   
Forms are created using TinyMCE.
A form is just a freely editable rich text content where the
user can insert:
● Fields,
● Actions,
● Hide-when formulas,
● Sub-forms.
Create Plomino forms
DEMO
   
A field can be:
● Editable: the user enters its value and it is stored in the
document,
● Computed: a formula computes its value and it is stored in
the document,
● Computed for display: a formula computes its value but is
not stored,
● Computed on creation: a formula computes its value at
creation time.
Field modes
DEMO
   
Plomino provides a set of basic fields:
Text, Rich text, Number, Date/time, File attachement,
Selection list.
And also advanced fields:
● Names: to select Plone members.
● Doclinks: to create links between documents.
● Datagrids: to manage editable dynamic tables.
● Google chart and Google visualization: to create rich
charts or maps.
Different field types
DEMO
   
Formulas are used to script the regular Plomino behaviour:
● Compute field values,
● Implement some custom actions,
● Hide some part of a form contextually,
● Process documents,
● Handle events,
● Handle redirections,
● Etc.
Formulas are written in Python, and are compiled as
Python scripts.
Formulas everywhere
DEMO
   
2 applications:
● Flood alert SMS subscription
mechanism
Map display, connection to an
external realtional database,
export to CSV.
● Hydro-sensors maintenance
system
Visit planing, visit sheet
import/export.
Business cases
DEMO
Adour river flood forecasting agency
   
Contacts database
Connexion with Plone
members.
Complex queries.
Large amount of contacts (>
8000)
Business cases
DEMO
International Council for Science
   
Project monitoring
application
● Advanced reporting,
● Complex forms,
● Workflow.
Business cases
DEMO
United Nations Environment Programs
   
Business cases
● Extremely various Plomino applications, built by extremely
various people:
– Archeologists,
– Lawyers,
– Real estate managers,
– Librarians,
– And even Plone experts.
● Any example in the room ?
   
Is it serious ?
● Alexander Limi said yesterday: “Recruit people”.
● A TTW application builder like that is good for non-
experts.
● But can it meet development standard expectations ?
Let's see how Plomino handles:
● Deployment,
● Maintenance,
● Debugging,
● Testing,
● Content synchronization.
   
Deployment and maintenance
● Plomino provides an import/export mechanism.
● The design (the application structure) can deployed over
HTTP from a server to another (even from between a Plone
3 and a Plone 4 instance).
● It can be exported as XML (and then imported back
somewhere else).
● The resulting XML can be managed in a SVN (or other)
repository.
● It allows partial import/export.
DEMO
   
Debugging
● Plomino debug mode
● Debugging as usual:
– Zope debug mode
– Clouseau
– ZDB
– plone_log
   
Testing
Testing as usual:
● Selenium
● Doctests
With doctests, the principle is to create a blank Plomino db,
then import your current XML design version, then run your
scenarios.
It can be then automated on Hudson.
   
Testing
Import basic-example db
>>> f = open(os.path.join(dir, "samples", "basic-example.xml"))
>>> id = folder.invokeFactory('PlominoDatabase', id='basic-example')
>>> db = getattr(folder, 'basic-example')
>>> db.at_post_create_script()
>>> wf_tool = self.portal.portal_workflow
>>> wf_tool.doActionFor(db, 'publish')
>>> xmlstring=f.read()
>>> db.importDesignFromXML(xmlstring)
>>> db.refreshDB()
>>> f.close()
   
Testing
Scenario
>>> browser.open(base_url+'/basic-example')
>>> 'Birthday' in browser.contents
True
>>> browser.getLink('Birthday').click()
>>> browser.getControl(name='personName').value = 'Eric'
>>> browser.getControl(name='birthDate').value = '1974-10-20 00:00'
>>> browser.getControl(name='personCategory').value = ['Friend']
>>> browser.getControl(name='plomino_save').click()
>>> '20-10-1974' in browser.contents
True
>>> browser.open(browser.url+"/EditDocument")
>>> browser.getControl(name='personCategory').value = ['Relative']
>>> browser.getControl(name='plomino_save').click()
>>> browser.open(base_url+'/basic-example')
>>> browser.getLink('All birthdays').click()
>>> 'October 20' in browser.contents
True
   
Thank you
● Questions ?
● Anybody interested in sprinting on Plomino ?
   
Makina Corpus
For all questions related to Plomino,
please contact Éric Bréhault
eric.brehault@makina-corpus.com
Tel : +33 950 463 703
www.makina-corpus.com

Mais conteúdo relacionado

Destaque

Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
Abdoulaye Dieng
 

Destaque (9)

comprendre angularJS en 10 minutes
comprendre angularJS en 10 minutescomprendre angularJS en 10 minutes
comprendre angularJS en 10 minutes
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 
Ces outils qui vous font gagner du temps
Ces outils qui vous font gagner du tempsCes outils qui vous font gagner du temps
Ces outils qui vous font gagner du temps
 
AngularJS - Présentation (french)
AngularJS - Présentation (french)AngularJS - Présentation (french)
AngularJS - Présentation (french)
 
AngularJS
AngularJSAngularJS
AngularJS
 
Introduction à Angular JS
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JS
 
Workshop Spring - Session 1 - L'offre Spring et les bases
Workshop Spring  - Session 1 - L'offre Spring et les basesWorkshop Spring  - Session 1 - L'offre Spring et les bases
Workshop Spring - Session 1 - L'offre Spring et les bases
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
AngularJS Basics with Example
AngularJS Basics with ExampleAngularJS Basics with Example
AngularJS Basics with Example
 

Semelhante a Plomino plone conf2010

0506-django-web-framework-for-python.pdf
0506-django-web-framework-for-python.pdf0506-django-web-framework-for-python.pdf
0506-django-web-framework-for-python.pdf
radhianiedjan1
 
Django Article V0
Django Article V0Django Article V0
Django Article V0
Udi Bauman
 
Writing Effective Self-Help Guides for World Domination
Writing Effective Self-Help Guides for World DominationWriting Effective Self-Help Guides for World Domination
Writing Effective Self-Help Guides for World Domination
Emma Jane Hogbin Westby
 

Semelhante a Plomino plone conf2010 (20)

By the power of Plone - Case Carousel at University of Jyväskylä
By the power of Plone - Case Carousel at University of JyväskyläBy the power of Plone - Case Carousel at University of Jyväskylä
By the power of Plone - Case Carousel at University of Jyväskylä
 
DDD with Behat
DDD with BehatDDD with Behat
DDD with Behat
 
Plomino
Plomino Plomino
Plomino
 
Odoo Experience 2018 - Odoo Studio: A Functional Approach
Odoo Experience 2018 - Odoo Studio: A Functional ApproachOdoo Experience 2018 - Odoo Studio: A Functional Approach
Odoo Experience 2018 - Odoo Studio: A Functional Approach
 
Polymer 101
Polymer 101Polymer 101
Polymer 101
 
Journeys with Transmogrifier and friends or How not to get stuck in the Plone...
Journeys with Transmogrifier and friends or How not to get stuck in the Plone...Journeys with Transmogrifier and friends or How not to get stuck in the Plone...
Journeys with Transmogrifier and friends or How not to get stuck in the Plone...
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
Advantages of golang development services & 10 most used go frameworks
Advantages of golang development services & 10 most used go frameworksAdvantages of golang development services & 10 most used go frameworks
Advantages of golang development services & 10 most used go frameworks
 
The working architecture of NodeJS applications, Виктор Турский
The working architecture of NodeJS applications, Виктор ТурскийThe working architecture of NodeJS applications, Виктор Турский
The working architecture of NodeJS applications, Виктор Турский
 
The working architecture of node js applications open tech week javascript ...
The working architecture of node js applications   open tech week javascript ...The working architecture of node js applications   open tech week javascript ...
The working architecture of node js applications open tech week javascript ...
 
0506-django-web-framework-for-python.pdf
0506-django-web-framework-for-python.pdf0506-django-web-framework-for-python.pdf
0506-django-web-framework-for-python.pdf
 
Django Article V0
Django Article V0Django Article V0
Django Article V0
 
Implementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing CompanyImplementing a Symfony Based CMS in a Publishing Company
Implementing a Symfony Based CMS in a Publishing Company
 
Writing Effective Self-Help Guides for World Domination
Writing Effective Self-Help Guides for World DominationWriting Effective Self-Help Guides for World Domination
Writing Effective Self-Help Guides for World Domination
 
Lug
LugLug
Lug
 
GUI toolkits comparison for python
GUI toolkits comparison for pythonGUI toolkits comparison for python
GUI toolkits comparison for python
 
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
Techjoomla Infrastructure Extensions - Adding an Enterprise Layer to Joomla!
 
Fighting legacy with hexagonal architecture and frameworkless php
Fighting legacy with hexagonal architecture and frameworkless phpFighting legacy with hexagonal architecture and frameworkless php
Fighting legacy with hexagonal architecture and frameworkless php
 
From prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.ioFrom prototype to production - The journey of re-designing SmartUp.io
From prototype to production - The journey of re-designing SmartUp.io
 
Company Visitor Management System Report.docx
Company Visitor Management System Report.docxCompany Visitor Management System Report.docx
Company Visitor Management System Report.docx
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

Plomino plone conf2010

  • 1.     Plomino How to easily build Plone custom applications through the web with small development knowledge Eric BREHAULT – Plone Conference 2010
  • 2.     Plone is so powerful With no Zope/Plone development knowledge and good Plone usage knowledge, you can build a powerful intranet: ● you can structure the site easily, ● you can manage users access rights and workflows in a very granular way, ● you can extend Plone standard features with a lot of excellent products.
  • 3.     But you might need a custom app Your intranet is just perfect, but at some point, you need a purchase management application. Of course, you want this application to be integrated into your intranet. What can you do ?
  • 4.     Create a content type ? Plone is a CMS, a purchase request might be considered as a content-type. Let's go: 1 schema (made with ArchgenXML or Dexterity) + few collections + 1 workflow (made with uworth.northstar) = approximately what you need
  • 5.     Not that easy Even if you do not necessarily need to be a developer to use the mentionned tools, it will still imply you have a good knowledge of: ● What a schema is. ● How Plone workflows work. ● How to deploy custom products.
  • 6.     Will it fit the needs ? Theoretiocally, the “Purchase request is just a content-type” approach should work. Practically, you will have to deal with hundreds of small and funny extra-requirements: ● the request form has 2 specific fields when you order furnitures, ● the approval workflow is not the same if you belong to the HR department, unless the manager is in vacation, ● the price list is provided in a monthly updated CSV file stored on a LAN shared disk, ● Etc.
  • 7.     Will it fit the needs ? So, practically, you will have to heavily tune the basic content-type behaviour. And if you are not a Plone expert, you are lost.
  • 8.     One could oppose that what has been described here is not a simple application but a quite complex one. If complex applications cannot be easily produced by non Plone experts, that is fair enough. My opinion: ● It is not a complex case, it is just the difference between a theorical case and a real case. ● Most part of time, real applications are not content- types. ● Non Plone experts must be able to produce real business applications. "Let no man ignorant of Plone enter here." Plato
  • 9.     ● Plomino allows to develop, deploy and maintain custom applications entirely from the Plone web interface. ● There is no schema, no data model, the application designer does not have to worry about the persistence, he/she will design forms, data will be saved accordingly. ● Everything can be scripted in order to adapt the behaviour to fit the actual needs. Plomino principles
  • 10.     1.Add a new Plomino “database” as any Plone content-type, ➔ The database is the root element which support the entire application. 2.Design some “forms” in TinyMCE, ➔ A form offers a layout and a set of fields. 3.Forms allow to create “documents”, or provide useful screens (menu, search, reports, etc.), ➔ Documents are just a set of items. The items may match the form fields, or not. 4.Create some “views” to list / filter / sort the documents in different ways. Create a Plomino application
  • 11.     Forms are created using TinyMCE. A form is just a freely editable rich text content where the user can insert: ● Fields, ● Actions, ● Hide-when formulas, ● Sub-forms. Create Plomino forms DEMO
  • 12.     A field can be: ● Editable: the user enters its value and it is stored in the document, ● Computed: a formula computes its value and it is stored in the document, ● Computed for display: a formula computes its value but is not stored, ● Computed on creation: a formula computes its value at creation time. Field modes DEMO
  • 13.     Plomino provides a set of basic fields: Text, Rich text, Number, Date/time, File attachement, Selection list. And also advanced fields: ● Names: to select Plone members. ● Doclinks: to create links between documents. ● Datagrids: to manage editable dynamic tables. ● Google chart and Google visualization: to create rich charts or maps. Different field types DEMO
  • 14.     Formulas are used to script the regular Plomino behaviour: ● Compute field values, ● Implement some custom actions, ● Hide some part of a form contextually, ● Process documents, ● Handle events, ● Handle redirections, ● Etc. Formulas are written in Python, and are compiled as Python scripts. Formulas everywhere DEMO
  • 15.     2 applications: ● Flood alert SMS subscription mechanism Map display, connection to an external realtional database, export to CSV. ● Hydro-sensors maintenance system Visit planing, visit sheet import/export. Business cases DEMO Adour river flood forecasting agency
  • 16.     Contacts database Connexion with Plone members. Complex queries. Large amount of contacts (> 8000) Business cases DEMO International Council for Science
  • 17.     Project monitoring application ● Advanced reporting, ● Complex forms, ● Workflow. Business cases DEMO United Nations Environment Programs
  • 18.     Business cases ● Extremely various Plomino applications, built by extremely various people: – Archeologists, – Lawyers, – Real estate managers, – Librarians, – And even Plone experts. ● Any example in the room ?
  • 19.     Is it serious ? ● Alexander Limi said yesterday: “Recruit people”. ● A TTW application builder like that is good for non- experts. ● But can it meet development standard expectations ? Let's see how Plomino handles: ● Deployment, ● Maintenance, ● Debugging, ● Testing, ● Content synchronization.
  • 20.     Deployment and maintenance ● Plomino provides an import/export mechanism. ● The design (the application structure) can deployed over HTTP from a server to another (even from between a Plone 3 and a Plone 4 instance). ● It can be exported as XML (and then imported back somewhere else). ● The resulting XML can be managed in a SVN (or other) repository. ● It allows partial import/export. DEMO
  • 21.     Debugging ● Plomino debug mode ● Debugging as usual: – Zope debug mode – Clouseau – ZDB – plone_log
  • 22.     Testing Testing as usual: ● Selenium ● Doctests With doctests, the principle is to create a blank Plomino db, then import your current XML design version, then run your scenarios. It can be then automated on Hudson.
  • 23.     Testing Import basic-example db >>> f = open(os.path.join(dir, "samples", "basic-example.xml")) >>> id = folder.invokeFactory('PlominoDatabase', id='basic-example') >>> db = getattr(folder, 'basic-example') >>> db.at_post_create_script() >>> wf_tool = self.portal.portal_workflow >>> wf_tool.doActionFor(db, 'publish') >>> xmlstring=f.read() >>> db.importDesignFromXML(xmlstring) >>> db.refreshDB() >>> f.close()
  • 24.     Testing Scenario >>> browser.open(base_url+'/basic-example') >>> 'Birthday' in browser.contents True >>> browser.getLink('Birthday').click() >>> browser.getControl(name='personName').value = 'Eric' >>> browser.getControl(name='birthDate').value = '1974-10-20 00:00' >>> browser.getControl(name='personCategory').value = ['Friend'] >>> browser.getControl(name='plomino_save').click() >>> '20-10-1974' in browser.contents True >>> browser.open(browser.url+"/EditDocument") >>> browser.getControl(name='personCategory').value = ['Relative'] >>> browser.getControl(name='plomino_save').click() >>> browser.open(base_url+'/basic-example') >>> browser.getLink('All birthdays').click() >>> 'October 20' in browser.contents True
  • 25.     Thank you ● Questions ? ● Anybody interested in sprinting on Plomino ?
  • 26.     Makina Corpus For all questions related to Plomino, please contact Éric Bréhault eric.brehault@makina-corpus.com Tel : +33 950 463 703 www.makina-corpus.com

Notas do Editor

  1. Il manque : - une liste de produits/services fin 2007 - une price list pour fin 2007 - le taux de pénétration prévisionnel espéré par cibles pour fin 2008, - la rentabilité attendue d'ici fin fin 2008 - la définition, l'organisaiton et l'animation de la force de vente -