The incredible and sad tale of innocent Plone 5 and its heartless add-ons

ROFL, now you feel the pain!

Don't say that, the plone4/plone5 compliancy was a piece of cake.

The hard part is the stupid test thing, as always...
(by the way, did your nation psychology chart mentioned French people are particularly dishonest? :slight_smile: )

Ok so that's fixed now and tested (and that was not painful :slight_smile: ).
And I have also implemented a post-install step so we automatically import the version specific profiles from the default profile.

not so fast, McGruff!

that's the problem with you, people that don't write tests; your implementation has multiple problems:

  1. I have to manually run different steps to install resources under Plone 4 and 5; that will surely lead to users inadvertently skipping that step and ending with a broken site (ok, I saw you already fixed this one)
  2. I have to manually run an step to uninstall the resources in Plone 5: users will end again with a broken site

all of this has to be automatic; I'm not sure about the best implementation.

at least we have now a starting point.

i made a pull request, which should fix these problems: https://github.com/collective/example.p4p5/pull/5

As a U.S. guy, I'm crushed we scored so low on the confrontational
and emotionally expressive scale. We look so damn boring on the cool map! Let's see if I can move the U.S. up on these scales with some of my comments. :slight_smile:

First, I am not trying to antagonize anyone, knock Plone or believe my views are all-knowing. I am trying to give a different perspective (site admin) from the developers on this community.plone. If by chance anything really annoys you, let me know. Also, this is a long post.

Second, I am not a programmer I am a self-described site admin and have been working in Plone off and on for 5 years or so. However, I have a very good understanding as a Site Admin. Through the years, I’ve: taken the training classes from Joel Burton, delved deeply into the Plone code, designed and had built a document management product, and even wrote some simple archetype products. So, I am not on your level of knowledge; however, I do understand many of the Plone issues.

Third, we are most concerned with what impacts our world, so I state up front I don’t have a dog in the fight you folks are discussing. So, my comments from here on acknowledge a lack of knowledge of these deep level topics, except to say: Some smart, well-intentioned people made these design decisions: It's time to move on and identify Plone issues we can improve.

The emperor fiddles while Rome burns.

Plone is losing relevance, especially in the U.S. market. I state this because:

  1. The number of Plone user groups has fallen off a cliff. Seattle use to have a strong group (20 plus people each month). Now Seattle has no group at all. I went to: https://plone.org/support/user-groups. The first three groups I clicked on (L.A., Atlanta and New Mexico) they were not active groups. For the first two there was no site anymore, the third the latest update was a few years ago.

  2. Do a search for Plone programmers (real ones, not people who claim to be Plone programmers because they know python). Ain’t that many, again, especially in U.S.

  3. My hosting site (WebFaction) has one click installers for many products (including WordPress and Drupal). They use to have one for Plone but they deleted it. Support told me they got no demand for Plone sites.

  4. Do a simple Google search: Plone (3.4 million hits); Drupal (74 million
    hits). Yeah, 25 times as many!

Finally, what is my issue? Simple: Functionality that will help make admins look good by giving them the tools they need to allow them to meet the needs of their users without repeated trips to a developer. Users and admins are the final customer and should be the focus of what is done with Plone. If it satisfies a need for them, it will likely help Plone and create paid work for developers.

Towards this goal I think Plone 5 brings many improvements to the user/site admin. For example, we can now easily change the account creation form (hard as hell in P4). Creating content type with dexterity is much simpler. The P5 interface is cool. However, two examples of areas open for improvement:

a) Dexterity is a big step forward from a site admin view. It allows us to create some reasonably robust products quickly. However, as an example of how the loop isn’t closed, when you create a form and add a field set, Dexterity doesn’t keep track of what widgets are added to the new tab. All widgets are added to the default tab. With the help of @cris, I learned how to edit the xml file to move the widget to the proper tab. Why? I can’t believe it is technically difficult for Dexterity to be aware of what tab the person is working on when adding content. I understand that Plone may not control this action of Dexterity.

b) Two very common requirements of a CMS, i) being able to set publish and end dates, ii) sending reminders to users of upcoming events, are either non-functional or details are hidden that I can’t find.

i. When I add content and use the ‘publish’ dates. I don’t see them as working. I have a site (mckennariley.webfactional.com) where, as a test, I changed the publishing date of the homepage to a future date. So why is the page still visible to users? Quite a while back @cewing explained it to me and, if memory serves, said using a cronjob to run a wget to refresh the page would do this. Don’t’ quote me. This feature must work. How do I do it? (I have previously posted this and Kim said it works for him. What am I missing)

ii. For the reminder to be sent, I am working with Plone product for crontab and the “upcoming content rule” add-on. (Trouble install crontab). I can get crontab working, but still issues prevent me from getting it to work. Thanks to the people who wrote these two products; however, we need to get it the final mile to get it to work.

For each of these products, I’ve done a lot of testing and would be glad to share all my notes with anyone interested. I am not just complaining, I am digging it, finding issues, and wanting to help fix it to improve Plone for all. For example, I am paying someone to get an important content rule (emails to group) to be updated to P5. Alternatively, after looking at the code, I proposed a possible simpler solution. If you’re interested, see:

Using Plone Rules to send emails to users based on roles

I also maintain that for Plone to separate from the pack it needs a much better use case for document management (Document Managment) and WebDAV (https://github.com/plone/Products.CMFPlone/issues/1237)

The people posting have in-depth knowledge, so I don’t question the details for their use case. However, I have used Zope External editor and found it to be reliable for ‘moderate’ use. Based on this, let me propose a use case that I think Plone could be a viable document management system for organizations less than 100 or so people. WebDAV is key to document management (e.g. Basecamp doesn’t offer it and makes document “management” a total kluge.). If the windows WebDAV is a real problem why not find a good WebDAV client that can be purchased and allowed to connect to Plone?

For Plone 3, I created a product that allowed project managers to more easily manage key documents. Using Word and templates, they would create a document (e.g. project meeting minutes), when done, they pressed upload. The tool, based on content type, automatically created proper file properties (metadata), automatically named the file, posted to the proper upload folder in Plone. Then, a parsing tool took over, parsed the Word file for properties (metadata), based on these properties, created a new content type, extracted the meeting date, meeting members, etc. and created a new content type. Finally, the action items included in the document were parsed and a new instance of the action item created on the site. The user didn’t do anything except create the document with a hand Word template. Try that with Drupal!

Plone is a beast to learn. We know that. If we add another robust reason for using Plone, like document management, we make Plone dramatically more useful. I know for the large organizations, they would want to full-blown DM solution. However, the vast majority of organizations are not large. Let’s help them.

I know this was long. Hope it was worth reading.

So, thoughts anyone?

2 Likes

I support that Plone - even out of the box - makes a good fit as a document management solution for organizations - who do not need that full blown super high support level agreed sharepoint solution.
I like your quote: "However, the vast majority of organizations are not large. Let’s help them.". I support that. Plone can make a good fit for many organizations.

I'm a Plone core contributor and earn my money with selling customized solutions for clients with more complex requirements than Wordpress or Drupal can serve out of the box. For me, Plone is a framework to build upon. It offers you a lot, but you also have to customize a lot. You won't sell Plone out of the box over a Wordpress solution. There are not even any useful high quality themes for Plone (known to me). I'd love to see that fixed and much of my work goes into making Plone better, so that I don't have to fix something again, for another customer.

Regarding all the critique on Plone 5.0 - I think Plone 5.1 will make it better. There are some open questions and issues which have to be sort out and fixed. For example, I'm looking forward for the current project, when I'm going to implement a new theme based on barceloneta. I expect to have to fix a lot along the way.

I'm happy that we did not sent out press releases to our german based it magazines! That has to be done with 5.1.

Each and everyone of these @rileydog are UX bugs and should be added as such to the plone tracker as a problem. You don't have to have solutions to add bugs.

I fear I'm the only Extensions/install.py lover left in the Plone community, but still: remember that Plone 5 fixed the missing install.py support.

Running a python script is IMHO the most pythonic and easy-to-understand way to run different install/uninstall stuff.

I was (am) in love with Archetypes, but Dexterity is great. I shoved Dexterity to lot of customers and they all loved the TTW + behavior support, and knowing that this can easily moved to filesystem is amazing.

Still, from the backend/development approach, things with Archetypes were easier and cleaner. Apart the lack of API, sometimes the problem came from z3c.form (which I will never like): doing simple things as creating a validator, or a dynamic default value for a field is possible, but seems half-baked sometimes.

Finally let me say this: I spent many year developing on old Plone sites and now I'm finally able to use Plone 5 in production. There are issues? Yes! But is a breath of fresh air.

Hi. I'm reluctant to call them bugs, anymore than I would call the navigation issues that I have previously discussed on the site a bug
First because I am open to the idea that I am missing something and it does work, just not how I expect.
Second because I believe this open community is the best place to see if people agree with my take on what I would call a missing feature.

I have posted bugs before after confirming and If there is a call for these features to be added I would be glad to add as a bug

I think this topic needs to be split up, so we can respond to the many things brought up here :slight_smile:

If it didn't work as you expected it then the bug is that its not intuitive for users to understand how it works. UX encompasses the full experience from marketing, to learning, to documentation, to engaging with the community. Any hicup in that process is fair game for the bug tracker.
Asking others here if they have the same problem is actually not a good idea as you are talking to experienced users who have no idea whaf is confusing first time users. You are better off showing the plone to someone who has never seen it before to confirm the UX bug.

sorry to say this, but you've failed ;-)[quote="rileydog, post:40, topic:1437"]
i. When I add content and use the ‘publish’ dates. I don’t see them as working. I have a site (mckennariley.webfactional.com) where, as a test, I changed the publishing date of the homepage to a future date. So why is the page still visible to users?
[/quote]

because that's the way it works: when you set the publication or expiration dates of an item, you're only messing with the visibility of such item; the item will be filtered from catalog searches and listings, but it will still be accessible to anyone who knows the URL; so, if you are setting your item as the default view of your site everybody will be able to see it, and it will not work as you expect.

I was looking at the documentation and I think this is not clear anywhere:

no, you're not; I'm with you; just look at how many profiles do we have to conditionally register right now to accomplish the task:

+1

and then we created 2 more :slight_smile:

see, 3 Plone core developers (2 of them hardcore) working for 3 days and we haven't being able to solve this... not bad.

we're almost there!

Come on Hector :slight_smile: , you say that like if we were 3 persons working full-time for 3 days.
I would rather describe it as a pleasant spare-time exchange of ideas which somehow results in few lines of code (because that's our favorite way to persistent our ideas).

And you are right, we are almost there!

1 Like

You might register an invisible "Viewlet" checking the publication period. A similar approach is used in "CMFDefault" (and I thought I had it also seen in a previous Plone version). Instead of a "Viewlet", you could also use a post traversal hook (--> "ZPublisher.BaseRequest.BaseRequest.post_traverse") for the check and register it in a traversal subscriber. Likely, some care will be required to avoid the check on templates that do not really view an object (e.g. a login template).

@hvelarde: the fact that plone makes pages before publication date visible is one of the more unintuitive things about plone. Yes its how it works but I think supporting this + a way to have stuff invisible before publication is good too.

@dieter: you could do it that way. You can also achieve the same thing using a diazo rule that hides the content based on an expression that looks if the page is published or not. Not that hard to do.

A third way, is an idea we are trying to get a client to pay for. A content rule that waits until the date specified in published or expires to activate. Kind of like a delay action. We were going to add it as a feature to collective.cron. You could then combine it with an action to publish it and then unpublish it. or remove it or email it or whatever.

Is "published" not purely controlled by workflow and independent of the publication period?

When I understand "diazo" correctly, it can only perform decisions based on information directly provided by the Plone output and not based on some "internal object state", such as the publication period (maintained as content fields).

In pure diazo yes. With plone.app.theming you have theme parameters which gives you one like TALES expressions. - http://docs.plone.org/external/plone.app.theming/docs/#theme-parameters

Or you can use any of a number of other ways of turning plone state into html. python scripts, rapido.