SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
Who am I?
Lukas Graf

4teamwork
Bern, Switzerland
https://github.com/4teamwork
ftw.tabbedview
Displays sub views in a set of tabs.
ftw.tabbedview
● http://github.com/4teamwork/ftw.tabbedview
● Source on GitHub, Released on PyPi

Integrates:
● collective.js.extjs
● collective.quickupload
● ftw.table
Features
●   Filtering
●   Sorting
●   Grouping
●   Managing columns
●   Batching
●   Flexible sources (Catalog/SQLAlchemy/...)
●   Data transformations (Icon/Author/Dates/...)
●   Highly configurable
Demo
Code Example: Tabbed View
class WorkspacesView(TabbedView):
    """Tabbed workspaces overview"""

    def get_tabs(self):
        return [{'id':'workspaces'},
                {'id':'documents'},
                {'id':'events'},
                {'id':'sharing'},]
class DocumentsTab(Tab):
    types = ['File', ]

    sort_on = 'effective'
    sort_reverse = True
    columns = (
         {'column': 'getIcon',
          'sort_index': 'getContentType',
          'column_title':'Type',
          'transform': workspace_helper.icon},

         {'column': 'Title',
          'sort_index': 'sortable_title',
          'transform': helper.link(icon=False,
                                   tooltip=True)},
          ...
Questions?

Mais conteúdo relacionado

Destaque (14)

Assessment photo album
Assessment photo albumAssessment photo album
Assessment photo album
 
The lottery
The lotteryThe lottery
The lottery
 
Andrew Goodwin Theory
Andrew Goodwin TheoryAndrew Goodwin Theory
Andrew Goodwin Theory
 
Bloody Sunday
Bloody SundayBloody Sunday
Bloody Sunday
 
象與騎象人-邁向快樂充實的人生
象與騎象人-邁向快樂充實的人生象與騎象人-邁向快樂充實的人生
象與騎象人-邁向快樂充實的人生
 
Ensayo Catedra ECCI
Ensayo Catedra ECCIEnsayo Catedra ECCI
Ensayo Catedra ECCI
 
Evaluation question 3 – what have you learnt from your audience feedback?
Evaluation question 3 – what have you learnt from your audience feedback?Evaluation question 3 – what have you learnt from your audience feedback?
Evaluation question 3 – what have you learnt from your audience feedback?
 
The lottery
The lotteryThe lottery
The lottery
 
Tulisan Ekonomi Koperasi 1
Tulisan Ekonomi Koperasi 1Tulisan Ekonomi Koperasi 1
Tulisan Ekonomi Koperasi 1
 
Laptop for Business
Laptop for BusinessLaptop for Business
Laptop for Business
 
Margaret thatcher
Margaret thatcherMargaret thatcher
Margaret thatcher
 
Classroom Volunteer Information
Classroom Volunteer InformationClassroom Volunteer Information
Classroom Volunteer Information
 
Laptop in Business
Laptop in BusinessLaptop in Business
Laptop in Business
 
Margaret thatcher
Margaret thatcherMargaret thatcher
Margaret thatcher
 

Semelhante a ftw.tabbedview - Tabbed Views

Building a Portfolio With Custom Post Types
Building a Portfolio With Custom Post TypesBuilding a Portfolio With Custom Post Types
Building a Portfolio With Custom Post Types
Alex Blackie
 
Rich Internet Applications con JavaFX e NetBeans
Rich Internet Applications  con JavaFX e NetBeans Rich Internet Applications  con JavaFX e NetBeans
Rich Internet Applications con JavaFX e NetBeans
Fabrizio Giudici
 
Taming that client side mess with Backbone.js
Taming that client side mess with Backbone.jsTaming that client side mess with Backbone.js
Taming that client side mess with Backbone.js
Jarod Ferguson
 
Ruby Development and MongoMapper (John Nunemaker)
Ruby Development and MongoMapper (John Nunemaker)Ruby Development and MongoMapper (John Nunemaker)
Ruby Development and MongoMapper (John Nunemaker)
MongoSF
 

Semelhante a ftw.tabbedview - Tabbed Views (20)

Building a Portfolio With Custom Post Types
Building a Portfolio With Custom Post TypesBuilding a Portfolio With Custom Post Types
Building a Portfolio With Custom Post Types
 
Aplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneAplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com Backbone
 
Declarative Data Modeling in Python
Declarative Data Modeling in PythonDeclarative Data Modeling in Python
Declarative Data Modeling in Python
 
Django Admin: Widgetry & Witchery
Django Admin: Widgetry & WitcheryDjango Admin: Widgetry & Witchery
Django Admin: Widgetry & Witchery
 
Glorp Tutorial Guide
Glorp Tutorial GuideGlorp Tutorial Guide
Glorp Tutorial Guide
 
React table tutorial project setup, use table, and usefilter
React table tutorial project setup, use table, and usefilterReact table tutorial project setup, use table, and usefilter
React table tutorial project setup, use table, and usefilter
 
How and Where in GLORP
How and Where in GLORPHow and Where in GLORP
How and Where in GLORP
 
Rich Internet Applications con JavaFX e NetBeans
Rich Internet Applications  con JavaFX e NetBeans Rich Internet Applications  con JavaFX e NetBeans
Rich Internet Applications con JavaFX e NetBeans
 
Documentation For Tab Setup
Documentation For Tab SetupDocumentation For Tab Setup
Documentation For Tab Setup
 
WordPress plugin #3
WordPress plugin #3WordPress plugin #3
WordPress plugin #3
 
Your Entity, Your Code
Your Entity, Your CodeYour Entity, Your Code
Your Entity, Your Code
 
Your Entity, Your Code
Your Entity, Your CodeYour Entity, Your Code
Your Entity, Your Code
 
Taming that client side mess with Backbone.js
Taming that client side mess with Backbone.jsTaming that client side mess with Backbone.js
Taming that client side mess with Backbone.js
 
FormsKit: reactive forms driven by state. UA Mobile 2017.
FormsKit: reactive forms driven by state. UA Mobile 2017.FormsKit: reactive forms driven by state. UA Mobile 2017.
FormsKit: reactive forms driven by state. UA Mobile 2017.
 
Twig tips and tricks
Twig tips and tricksTwig tips and tricks
Twig tips and tricks
 
Metaprogramming in ES6
Metaprogramming in ES6Metaprogramming in ES6
Metaprogramming in ES6
 
Google App Engine in 40 minutes (the absolute essentials)
Google App Engine in 40 minutes (the absolute essentials)Google App Engine in 40 minutes (the absolute essentials)
Google App Engine in 40 minutes (the absolute essentials)
 
Ruby Development and MongoMapper (John Nunemaker)
Ruby Development and MongoMapper (John Nunemaker)Ruby Development and MongoMapper (John Nunemaker)
Ruby Development and MongoMapper (John Nunemaker)
 
Quality code by design
Quality code by designQuality code by design
Quality code by design
 
Where's My SQL? Designing Databases with ActiveRecord Migrations
Where's My SQL? Designing Databases with ActiveRecord MigrationsWhere's My SQL? Designing Databases with ActiveRecord Migrations
Where's My SQL? Designing Databases with ActiveRecord Migrations
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
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
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 

ftw.tabbedview - Tabbed Views

  • 1. Who am I? Lukas Graf 4teamwork Bern, Switzerland https://github.com/4teamwork
  • 3. ftw.tabbedview ● http://github.com/4teamwork/ftw.tabbedview ● Source on GitHub, Released on PyPi Integrates: ● collective.js.extjs ● collective.quickupload ● ftw.table
  • 4. Features ● Filtering ● Sorting ● Grouping ● Managing columns ● Batching ● Flexible sources (Catalog/SQLAlchemy/...) ● Data transformations (Icon/Author/Dates/...) ● Highly configurable
  • 6. Code Example: Tabbed View class WorkspacesView(TabbedView): """Tabbed workspaces overview""" def get_tabs(self): return [{'id':'workspaces'}, {'id':'documents'}, {'id':'events'}, {'id':'sharing'},]
  • 7. class DocumentsTab(Tab): types = ['File', ] sort_on = 'effective' sort_reverse = True columns = ( {'column': 'getIcon', 'sort_index': 'getContentType', 'column_title':'Type', 'transform': workspace_helper.icon}, {'column': 'Title', 'sort_index': 'sortable_title', 'transform': helper.link(icon=False, tooltip=True)}, ...