SlideShare a Scribd company logo
 
Rapid Application Development in Plone Presenter: Paul Roe Company:  The Virtual Limited Building Plone sites since 2002 www. the virtual .co.nz
People get pictures “When you talk code, logic or in abstract it hurts the head of the client and misses that rare opportunity to use the client's eyes and ears at the same time”.  Steven Gourley
Pictures ,[object Object]
We're interested in data models (entities and relationships), workflows and events. Gui Tools ,[object Object]
Poseidon  http://www.gentleware.com/
ObjectDomain  http://www.objectdomain.com/
ArgoUML
Simple Content
Field Properties (tags)
Add Workflow (Statechart)
States and transitions
ArchGenXML ,[object Object]
code generator
Generates Python code from UML-Models (XMI-Format) ,[object Object]
Plone and Archetypes changes
Generate  $ archgenxml -c generate.conf PhotoDoc.zargo schema = Schema(( ImageField( name='photo', widget=ImageField._properties['widget']( label='Photo', label_msgid='PhotoDoc_label_photo', i18n_domain='PhotoDoc', ), storage=AnnotationStorage(), write_permission="PhotoDoc: Modify Images", label="An Image", ), StringField( name='code', widget=StringField._properties['widget']( label='Code',
Manual Code  class photodoc(BaseContent, BrowserDefaultMixin): """ """ security = ClassSecurityInfo() implements(interfaces.Iphotodoc) meta_type = 'photodoc' _at_rename_after_creation = True schema = photodoc_schema ##code-section class-header #fill in your manual code here ##/code-section class-header # Methods registerType(photodoc, PROJECTNAME) # end of class photodoc ##code-section module-footer #fill in your manual code here ##/code-section module-footer
Install Copy across product, restart plone and you can install in a plone site.
Something  More Complicated

More Related Content

What's hot

Development tools & resources
Development tools & resourcesDevelopment tools & resources
Development tools & resources
Adi Setiawan
 
Quanto è sicuro il tuo wordpress?
Quanto è sicuro il tuo wordpress? Quanto è sicuro il tuo wordpress?
Quanto è sicuro il tuo wordpress? GGDBologna
 
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
David Wesst
 
What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?
Takayuki Miyoshi
 
Internationalizing The New York Times
Internationalizing The New York TimesInternationalizing The New York Times
Internationalizing The New York Times
Scott Taylor
 
Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)
David Wesst
 
Plugin Development for Beginners v.2019
Plugin Development for Beginners v.2019Plugin Development for Beginners v.2019
Plugin Development for Beginners v.2019
Joe Cartonia
 
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKJavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
David Wesst
 
Bootstrapping your plugin
Bootstrapping your pluginBootstrapping your plugin
Bootstrapping your pluginMarko Heijnen
 
Easy form creation and validation with Formjack
Easy form creation and validation with FormjackEasy form creation and validation with Formjack
Easy form creation and validation with Formjack
slicejack
 
Building plugins like a pro
Building plugins like a proBuilding plugins like a pro
Building plugins like a pro
Marko Heijnen
 
Fundamentals of HTML5
Fundamentals of HTML5Fundamentals of HTML5
Fundamentals of HTML5
St. Petersburg College
 
Intro to software dev and Firebase
Intro to software dev and FirebaseIntro to software dev and Firebase
Intro to software dev and Firebase
Adrian Bunge
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
David Wesst
 
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
DrupalCamp Kyiv
 
Flexbox
FlexboxFlexbox
Flexbox
LindsayRec
 
Webinar : Simplified and Cost-Effective Drupal 9 Migration
Webinar : Simplified and Cost-Effective Drupal 9 MigrationWebinar : Simplified and Cost-Effective Drupal 9 Migration
Webinar : Simplified and Cost-Effective Drupal 9 Migration
Ameex Technologies
 
Dimpact wim bumpy road of building reusable platform for municipalities from...
Dimpact wim  bumpy road of building reusable platform for municipalities from...Dimpact wim  bumpy road of building reusable platform for municipalities from...
Dimpact wim bumpy road of building reusable platform for municipalities from...
DrupalCamp Kyiv
 
Gwt Presentation 1
Gwt Presentation 1Gwt Presentation 1
Gwt Presentation 1
Jetti Chowdary
 

What's hot (19)

Development tools & resources
Development tools & resourcesDevelopment tools & resources
Development tools & resources
 
Quanto è sicuro il tuo wordpress?
Quanto è sicuro il tuo wordpress? Quanto è sicuro il tuo wordpress?
Quanto è sicuro il tuo wordpress?
 
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
 
What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?What is the Responsibility of Plugin Developers?
What is the Responsibility of Plugin Developers?
 
Internationalizing The New York Times
Internationalizing The New York TimesInternationalizing The New York Times
Internationalizing The New York Times
 
Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)
 
Plugin Development for Beginners v.2019
Plugin Development for Beginners v.2019Plugin Development for Beginners v.2019
Plugin Development for Beginners v.2019
 
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SKJavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK
 
Bootstrapping your plugin
Bootstrapping your pluginBootstrapping your plugin
Bootstrapping your plugin
 
Easy form creation and validation with Formjack
Easy form creation and validation with FormjackEasy form creation and validation with Formjack
Easy form creation and validation with Formjack
 
Building plugins like a pro
Building plugins like a proBuilding plugins like a pro
Building plugins like a pro
 
Fundamentals of HTML5
Fundamentals of HTML5Fundamentals of HTML5
Fundamentals of HTML5
 
Intro to software dev and Firebase
Intro to software dev and FirebaseIntro to software dev and Firebase
Intro to software dev and Firebase
 
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SKHTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
HTML5: The Parts You Care About - 4/Nov/13 - PrDC Saskatoon, SK
 
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
 
Flexbox
FlexboxFlexbox
Flexbox
 
Webinar : Simplified and Cost-Effective Drupal 9 Migration
Webinar : Simplified and Cost-Effective Drupal 9 MigrationWebinar : Simplified and Cost-Effective Drupal 9 Migration
Webinar : Simplified and Cost-Effective Drupal 9 Migration
 
Dimpact wim bumpy road of building reusable platform for municipalities from...
Dimpact wim  bumpy road of building reusable platform for municipalities from...Dimpact wim  bumpy road of building reusable platform for municipalities from...
Dimpact wim bumpy road of building reusable platform for municipalities from...
 
Gwt Presentation 1
Gwt Presentation 1Gwt Presentation 1
Gwt Presentation 1
 

Similar to Rapid Application Development in Plone - Paul Roe

Building a Desktop for the Cloud
Building a Desktop for the CloudBuilding a Desktop for the Cloud
Building a Desktop for the Cloud
Romain Huet
 
Swf search final
Swf search finalSwf search final
Swf search final
Duane Nickull
 
Un Microsystem Company Analysis Essay
Un Microsystem Company Analysis EssayUn Microsystem Company Analysis Essay
Un Microsystem Company Analysis Essay
Rikki Wright
 
201705 neoteric software development intro
201705 neoteric software development intro201705 neoteric software development intro
201705 neoteric software development intro
Matt Kurleto
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
Paul Jensen
 
[Devfest 2019 Taipei] FunWater => 整合自動化建構 + 無伺服器應用在 Action on Google
[Devfest 2019 Taipei] FunWater => 整合自動化建構 + 無伺服器應用在 Action on Google[Devfest 2019 Taipei] FunWater => 整合自動化建構 + 無伺服器應用在 Action on Google
[Devfest 2019 Taipei] FunWater => 整合自動化建構 + 無伺服器應用在 Action on Google
Wei-Hao Huang
 
Going open source with small teams
Going open source with small teamsGoing open source with small teams
Going open source with small teams
Jamie Thomas
 
Being a Little Agile
Being a Little AgileBeing a Little Agile
Being a Little Agile
Daniel Blair
 
Building a scalable app factory with Appcelerator Platform
Building a scalable app factory with Appcelerator PlatformBuilding a scalable app factory with Appcelerator Platform
Building a scalable app factory with Appcelerator Platform
Angus Fox
 
Portfolio_Rolf Huijgen
Portfolio_Rolf HuijgenPortfolio_Rolf Huijgen
Portfolio_Rolf HuijgenRolf Huijgen
 
Cloud development goes lightweight - Ken Walker
Cloud development goes lightweight - Ken WalkerCloud development goes lightweight - Ken Walker
Cloud development goes lightweight - Ken Walker
jaxconf
 
PixelsCamp | Odoo - The Open Source Business Apps Platform for the 21st Century
PixelsCamp | Odoo - The Open Source Business Apps Platform for the 21st CenturyPixelsCamp | Odoo - The Open Source Business Apps Platform for the 21st Century
PixelsCamp | Odoo - The Open Source Business Apps Platform for the 21st Century
Daniel Reis
 
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAAppcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Jeff Haynie
 
iPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumiPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumAxway Appcelerator
 
Ibm worklight - going from xpages mobile to native mobile applications
Ibm worklight - going from xpages mobile to native mobile applicationsIbm worklight - going from xpages mobile to native mobile applications
Ibm worklight - going from xpages mobile to native mobile applications
Mark Roden
 
Google's serverless journey: past to present
Google's serverless journey: past to presentGoogle's serverless journey: past to present
Google's serverless journey: past to present
wesley chun
 
O365 and SharePoint Connect - Create an immersive experience with office 365...
O365 and SharePoint Connect  - Create an immersive experience with office 365...O365 and SharePoint Connect  - Create an immersive experience with office 365...
O365 and SharePoint Connect - Create an immersive experience with office 365...
Alexander Meijers
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
NCCOMMS
 

Similar to Rapid Application Development in Plone - Paul Roe (20)

Building a Desktop for the Cloud
Building a Desktop for the CloudBuilding a Desktop for the Cloud
Building a Desktop for the Cloud
 
Swf search final
Swf search finalSwf search final
Swf search final
 
Un Microsystem Company Analysis Essay
Un Microsystem Company Analysis EssayUn Microsystem Company Analysis Essay
Un Microsystem Company Analysis Essay
 
201705 neoteric software development intro
201705 neoteric software development intro201705 neoteric software development intro
201705 neoteric software development intro
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
 
[Devfest 2019 Taipei] FunWater => 整合自動化建構 + 無伺服器應用在 Action on Google
[Devfest 2019 Taipei] FunWater => 整合自動化建構 + 無伺服器應用在 Action on Google[Devfest 2019 Taipei] FunWater => 整合自動化建構 + 無伺服器應用在 Action on Google
[Devfest 2019 Taipei] FunWater => 整合自動化建構 + 無伺服器應用在 Action on Google
 
Devraj_Nataraj_CV_PDF
Devraj_Nataraj_CV_PDFDevraj_Nataraj_CV_PDF
Devraj_Nataraj_CV_PDF
 
Going open source with small teams
Going open source with small teamsGoing open source with small teams
Going open source with small teams
 
Being a Little Agile
Being a Little AgileBeing a Little Agile
Being a Little Agile
 
Building a scalable app factory with Appcelerator Platform
Building a scalable app factory with Appcelerator PlatformBuilding a scalable app factory with Appcelerator Platform
Building a scalable app factory with Appcelerator Platform
 
Resume
ResumeResume
Resume
 
Portfolio_Rolf Huijgen
Portfolio_Rolf HuijgenPortfolio_Rolf Huijgen
Portfolio_Rolf Huijgen
 
Cloud development goes lightweight - Ken Walker
Cloud development goes lightweight - Ken WalkerCloud development goes lightweight - Ken Walker
Cloud development goes lightweight - Ken Walker
 
PixelsCamp | Odoo - The Open Source Business Apps Platform for the 21st Century
PixelsCamp | Odoo - The Open Source Business Apps Platform for the 21st CenturyPixelsCamp | Odoo - The Open Source Business Apps Platform for the 21st Century
PixelsCamp | Odoo - The Open Source Business Apps Platform for the 21st Century
 
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAAppcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
 
iPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumiPhone/iPad Development with Titanium
iPhone/iPad Development with Titanium
 
Ibm worklight - going from xpages mobile to native mobile applications
Ibm worklight - going from xpages mobile to native mobile applicationsIbm worklight - going from xpages mobile to native mobile applications
Ibm worklight - going from xpages mobile to native mobile applications
 
Google's serverless journey: past to present
Google's serverless journey: past to presentGoogle's serverless journey: past to present
Google's serverless journey: past to present
 
O365 and SharePoint Connect - Create an immersive experience with office 365...
O365 and SharePoint Connect  - Create an immersive experience with office 365...O365 and SharePoint Connect  - Create an immersive experience with office 365...
O365 and SharePoint Connect - Create an immersive experience with office 365...
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
 

More from knappt

Pythonic APIs - Anthony Baxter
Pythonic APIs - Anthony BaxterPythonic APIs - Anthony Baxter
Pythonic APIs - Anthony Baxter
knappt
 
Plone in Business - Richard Shea
Plone in Business - Richard SheaPlone in Business - Richard Shea
Plone in Business - Richard Shea
knappt
 
Plone in Government - Dylan Jay
Plone in Government - Dylan JayPlone in Government - Dylan Jay
Plone in Government - Dylan Jay
knappt
 
What's New in Plone 4 - Tim Knapp
What's New in Plone 4 - Tim KnappWhat's New in Plone 4 - Tim Knapp
What's New in Plone 4 - Tim Knapp
knappt
 
Getting All Your Web Apps To Wear The Company Brand
Getting All Your Web Apps To Wear The Company BrandGetting All Your Web Apps To Wear The Company Brand
Getting All Your Web Apps To Wear The Company Brand
knappt
 
Getting All Your Web Apps To Wear The Company Brand (JP)
Getting All Your Web Apps To Wear The Company Brand (JP)Getting All Your Web Apps To Wear The Company Brand (JP)
Getting All Your Web Apps To Wear The Company Brand (JP)
knappt
 
Buildout and Plone
Buildout and PloneBuildout and Plone
Buildout and Plone
knappt
 
An Introduction To Repoze
An Introduction To RepozeAn Introduction To Repoze
An Introduction To Repoze
knappt
 

More from knappt (8)

Pythonic APIs - Anthony Baxter
Pythonic APIs - Anthony BaxterPythonic APIs - Anthony Baxter
Pythonic APIs - Anthony Baxter
 
Plone in Business - Richard Shea
Plone in Business - Richard SheaPlone in Business - Richard Shea
Plone in Business - Richard Shea
 
Plone in Government - Dylan Jay
Plone in Government - Dylan JayPlone in Government - Dylan Jay
Plone in Government - Dylan Jay
 
What's New in Plone 4 - Tim Knapp
What's New in Plone 4 - Tim KnappWhat's New in Plone 4 - Tim Knapp
What's New in Plone 4 - Tim Knapp
 
Getting All Your Web Apps To Wear The Company Brand
Getting All Your Web Apps To Wear The Company BrandGetting All Your Web Apps To Wear The Company Brand
Getting All Your Web Apps To Wear The Company Brand
 
Getting All Your Web Apps To Wear The Company Brand (JP)
Getting All Your Web Apps To Wear The Company Brand (JP)Getting All Your Web Apps To Wear The Company Brand (JP)
Getting All Your Web Apps To Wear The Company Brand (JP)
 
Buildout and Plone
Buildout and PloneBuildout and Plone
Buildout and Plone
 
An Introduction To Repoze
An Introduction To RepozeAn Introduction To Repoze
An Introduction To Repoze
 

Recently uploaded

Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 

Recently uploaded (20)

Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 

Rapid Application Development in Plone - Paul Roe

  • 1.  
  • 2. Rapid Application Development in Plone Presenter: Paul Roe Company: The Virtual Limited Building Plone sites since 2002 www. the virtual .co.nz
  • 3. People get pictures “When you talk code, logic or in abstract it hurts the head of the client and misses that rare opportunity to use the client's eyes and ears at the same time”. Steven Gourley
  • 4.
  • 5.
  • 13.
  • 15.
  • 17. Generate $ archgenxml -c generate.conf PhotoDoc.zargo schema = Schema(( ImageField( name='photo', widget=ImageField._properties['widget']( label='Photo', label_msgid='PhotoDoc_label_photo', i18n_domain='PhotoDoc', ), storage=AnnotationStorage(), write_permission="PhotoDoc: Modify Images", label="An Image", ), StringField( name='code', widget=StringField._properties['widget']( label='Code',
  • 18. Manual Code class photodoc(BaseContent, BrowserDefaultMixin): """ """ security = ClassSecurityInfo() implements(interfaces.Iphotodoc) meta_type = 'photodoc' _at_rename_after_creation = True schema = photodoc_schema ##code-section class-header #fill in your manual code here ##/code-section class-header # Methods registerType(photodoc, PROJECTNAME) # end of class photodoc ##code-section module-footer #fill in your manual code here ##/code-section module-footer
  • 19. Install Copy across product, restart plone and you can install in a plone site.
  • 20. Something More Complicated
  • 21. A real project Steve Gourley approached us with the plan to build a web application for his Heath and Fitness Training and Recruitment company (NZIHF).
  • 25. Steve Gourley - NZIHF “ A significant feature in attaining a good result for us was the opportunity to see the object and its relationships to other objects” “ We had no idea the thing was then generating code, but we did know what was being talked about and therefore had a richer exploration of what we wanted in a more economic (time, which is money in development too!) way”.
  • 26. Rapid Application Development in Plone Presenter: Paul Roe Company: The Virtual Limited Building Plone sites since 2002 www. the virtual .co.nz

Editor's Notes

  1. Hi I'm Paul from TheVirtual
  2. I'm going to give brief introduction to using UML modelling and the ArchGenXML code generator. Quickly describe a more complicated real world web application . And then talk about some of the advantages that come with being able to use visual modelling in conjunction with ArchGenXML My hope is that you'll see the potential of these tools and give them a go.
  3. We use ArgoUML. There are some relevant tutorials on the Plone site in the ArchGenXML howtos.
  4. Initial ArgoUML screen. There's a UML Profile available for Archetypes which includes most of the stuff you need for getting things working.
  5. As an example we'll subclass a Document and add a couple of fields.
  6. Changing properties of fields, content types and relationships is easy. Select the field, Click tags and add tags to change the label, description and field level permissions etc You can add tags on the content type as well allowing permissions and many other properties to be controlled. We've set the modify permission on the field when we generate code later we'll see the label and write permissions have been set on the schema
  7. Now we'll add a simple workflow. If you're happy with the default plone workflow you don't need to do anything as ArchGenXML takes care of that. But if you need something special adding a workflow to a content type is simple. Select the content type and add a statechart from the context menu You can also assign an existing workflow via a tag on the content type
  8. Add workflow states and transitions, and events. Set permissions on the object and control access to the transitions
  9. There are pros and cons of using code generation and gui tools for building applications. I've used a few systems in the past and I'm well aware of problems that can arise. Using version control on the models and generated code ensures that you understand whats going on when things are regenerated. Some of the many advantages are the reduction in boilerplate and ease of making major changes to the code base. Upgrades in Plone have also been much easier. The change to Generic Setup being one as new versions of ArchgenXML support the changes
  10. Now we're going to generate the code, the first line invokes archgenxml. The rest is just a small part of the generated code for the schema in the content type. You can see the label and write permission on the field is set as per our model.
  11. Throughout all the generated files there are plenty of places to put custom code which is kept across rebuilds. ArchGenXML builds the entire file structure and sets up the profiles for install and configuration
  12. This all took about as long to explain as to actually do it! The real value of the UML diagramming and ArchGenXML comes when building something more complicated.
  13. Its all very well being able to demo easy stuff, but how practical is it in the real world working with customers. These are a couple of the UML models from a real project.
  14. Steve was well prepared and at our first meeting I suggested that the best way forward was to use use a GUI tool to analyse and explore the project. By collaboratively building a visual model of the application we would both better understand the project, and be able to work through any complex relationships and workflows more easily. We had regular meetings for an hour or two. With builds, extra custom code and testing done between. The previous image shows parts of that project.
  15. There's not a lot of time to go into detail, but in this and the next few slides I'll show a few small parts that correspond to the simple demo at the start This is one of the simple workflows from the project Its reused over a few content types
  16. This shows the permissions on a state in a training workflow. It shows who can access and change the object. The worklist tag means that when the object is in this state it appears in a review list similar to what a Reviewer would see with pending items.
  17. This shows the properties on a transition in a workflow. Events can be fired on transitions. We setup a subscriber in the Effect Field. The subscriber in this case is fired when someone passes part of a course. This does a few checks and can change the state of their course to Passed if they've completed everything. It generates all the boiler plate for the Subscriber, just leaving the actual checks to be coded. There's a lot more to show, but that all we have time for.
  18. Steve best sums up the advantages of UML, ArchGenXML and Plone. It really works well and the more input from the customer the better it works! Thanks – Questions? Steve is happy to talk to people he's at nzihf.co.nz
  19. Thanks