The future of installing Rapido Apps TTW

Introduction

In my GSoC proposal, one of my milestones is to make it easier for Rapido apps to be installed and exported.

Current Implementation

Currently, I've added the ability to install rapido apps from one theme to another by clicking on a button on the Theme Editor page. This feature only does a clone of the rapido app from the source theme to the contexted theme. Doing it this way promotes the cloned app to be independent of the source theme, but it will not be able to receive updates from the source theme.

Near future Implementation

Referenced Rapido Apps

Status: Started

Rapido apps, by default, have the ability to be referenced by creating a .lnk file with the name of source theme as the content. Upon installing a rapido app from another theme via the Theme Editor page, the user should be given the option to reference the rapido app, in addition to cloning it.

Pros

  • Each theme with the referenced app will receive updates from the source theme.
  • Minimize the persistent storage space for rapido apps and themes

Cons

  • The referenced app is not independent of the source theme
  • The provided functionality of the referenced app might be at risk if the source theme is deleted.
  • Changes will not be exclusive to the contexted theme.

Remote Repository for Rapido Apps

Status: Started

Importing and exporting Rapido apps from a remote repository should be easy as installing a Wordpress add-on from a marketplace. It's a bad comparison when it comes on to security, but the flexibility of installing re-usable Rapido Apps is quite feasible at times.

Pros

  • Access to a wide variety of re-usable rapido apps.
  • Imported apps can be personalized

Cons

  • There might be unforeseen security concerns.
2 Likes

@datakurre : Would this be possible to do with theme fragments as well ?

Yes, but not in this iteration. As you might know, GSoC deadline is just around the corner. Implementing a Rapido store is the top priority at this time. Based on my understanding, fragments are different from rapido apps. However, to implement it, it should be very similar and easy. I'll add it to the additional features to implement after GSoC has ended.

@espenmn Yes it would. But it would cost some traversing time for lookup the linked fragment (and memory to possibly cache that for future requests). I'll think about that once I get my instant add-on idea further.

Could you give an example of this? I wonder, if it should be possible to also refer to other plone.resource directories than those under theme (with ++theme++traverser).

To reference a rapido app from another theme, we need to create a file with the name of the rapido app. For instance, gsoc-2016 theme has a rapido app called students. The only thing we need to do is create a file in our current theme, gsoc-2017 called students.lnk with the following content:

gsoc-2016

The screenshot below shows an example of this:

Please note, at the moment, I didn't add support to simply reference a rapido app via the rapido store. I only added support for cloning rapido apps from other themes.

Currently, the interface for the store can be seen in the following two screenshots:

Why use theme fragments when they do less? Isn't python + TAL better than just TAL?

Because you can use the exact same schema and tal definitions that you use for dexterity.
just XML and pt (tal) (or just a .pt if you dont need any 'settings'

@espenmn you can with rapido too. It has PT. or python or both. If you want to combine it with a custom content type you can. Using rapido style input fields is optional.
Think of rapido is a PT + browserview and themefragments as just the PT.

When I want different fields in my theme fragment, I just make a new dexterity content type, add the fields and copy the xml to the theme fragment.xml (and then delete the content type).
This gives me an UI to add fields and access to widgets etc.

Then I add the theme fragment tile in mosaic, configure it (=edit the fields). This is extremely convinient ... can I do the same with rapido ?
(if yes, I never figured it out).