Giter Club home page Giter Club logo

products.cmfplone's Introduction

Plone Logo

Plone

PyPI - Wheel PyPI - License PyPI - Status

GitHub contributors GitHub Repo stars

Plone is a mature, secure, and user-friendly content management system (CMS).

Plone was first released to the public on October 4, 2001.

Plone has the maturity, stability, and reliability of an application maintained by open source developers with decades of experience, while continually evolving and adapting to modern technology.

Lots of customizations can be made trough-the-web, such as creating content types, themes, workflows, and much more. Plone may be extended and used as a framework on which to build custom CMS-like solutions.

Plone works as a

  • Full-featured server-side rendered HTML CMS.
  • React-based frontend for editing and viewing content, backed by a server with a REST API.
  • Headless CMS server with a REST API, allowing a developer to build a custom frontend with their chosen technology.

Installing Plone

Plone is available on Linux, Microsoft Windows, macOS, and BSD platforms.

Plone may be run as a container in the cloud with Docker and other Open Containers Initiative compliant platforms. Example Dockerfiles and base images are available.

Install Plone by choosing an option from plone.org

Documentation

Consult the official Plone documentation with information for different audiences.

For trainings comprehensive Plone training material is available.

What is Plone?

Plone is a ready-to-run content management system, offering a complete set of features needed by a wide variety of organizations.

Security is built into Plone's architecture from the ground up. Plone offers fine-grained permission control over content and actions.

Plone is easy to set up, extremely flexible, and provides you with a system for managing web content that is ideal for project groups, communities, websites, extranets, and intranets.

  • Plone is easy to install. Several installation options are available for either your local machine or on servers in the cloud.

  • Plone empowers content editors and web application developers. The Plone Team includes usability experts who have made Plone easy and attractive for content managers to add, update, and maintain content.

  • Plone is international. The Plone interface has more than 35 translations, and tools exist for managing multilingual content.

  • Plone follows standards and is inclusive. Plone carefully follows standards for usability and accessibility. Plone is compliant with WCAG 2.1 level AA and aims for ATAG 2.0 level AA.

  • Plone is open source. Plone is licensed under the GNU General Public License, the same license used by Linux. This gives you the right to use Plone without a license fee, and to improve upon the product.

  • Plone is supported. There are over two hundred active developers in the Plone Development Team around the world, and a multitude of companies that specialize in Plone development and support.

  • Plone is extensible. There is a multitude of add-on products for Plone to add new features and content types. In addition, Plone can be scripted using web standard solutions and open source languages.

  • Plone is technology neutral. Plone can interoperate with most relational database systems—both open source and commercial—and runs on a vast array of platforms, including Linux, Windows, macOS, and BSD.

Technical overview

Plone is a content management platform with its backend written in Python. Plone has a choice of frontend, either Classic UI using server-side templates or Volto written in modern React-based JavaScript. It builds upon Zope, an open source web application server and development system, and thus on the pluggable Zope Component Architecture (ZCA).

Python is the easy to learn, widely used, and supported open source programming language. Python can be used to add new features to Plone and used to understand or make changes to the way that Plone works.

Plone stores its contents in Zope's built-in transactional hierarchical object database, the ZODB. The ZODB can be connected to simple file-storages, scalable ZEO-Servers or Postgres, MySQL, and Oracle. There are add-ons and techniques, however, to share information with other sources, such as relational databases, LDAP, filesystem files, and so on.

Official Resources

This project is supported by

Plone Logo

License

The project is licensed under the GPLv2.

products.cmfplone's People

Contributors

agitator avatar ale-rt avatar bloodbare avatar datakurre avatar davisagli avatar do3cc avatar ebrehault avatar erral avatar esteele avatar fredvd avatar gforcada avatar hannosch avatar hvelarde avatar jaroel avatar jensens avatar k-j-kleist avatar khink avatar ksuess avatar lrowe avatar mauritsvanrees avatar mrtango avatar pbauer avatar petschki avatar sneridagh avatar tdesvenain avatar thet avatar tisto avatar tomgross avatar vangheem avatar vincentfretin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

products.cmfplone's Issues

Remove code that synchronizes portal properties with p.a.registry settings.

The PLIP was originally intended to be merged into the 4.x branch. Therefore we came up with the idea to sync the old (portal property based) settings with the new (p.a.registry based) settings to keep backwards compatibility. The old sync code needs to be removed now.

With Plone 5 the plan is now to get rid of the portal properties, write an upgrade step for old profiles and amend the code in coredev that uses the old properties.

Remove undo form

Unless things have changed and I just never noticed, undo works like 1 out of every NEVER times. Let's just remove this until the implementation is more solid. Remove these and any references to them.

  • Products/CMFPlone/skins/plone_scripts/undo.py
  • Products/CMFPlone/UndoTool.py
  • Products/CMFPlone/skins/plone_forms/undo_form.pt
  • Products/CMFPlone/skins/plone_images/undo_icon.png
  • Products/CMFPlone/skins/plone_forms/undo_form.pt.metadata
  • Products/CMFPlone/skins/plone_images/undo_icon.png.metadata
  • Products/CMFPlone/skins/plone_deprecated/undo_icon.gif
  • Products/CMFPlone/skins/plone_deprecated/undo_icon.gif.metadata

Migrate Author Feedback

Move to z3c.form and browser views.

This also references something called "portal_feedback". I don't know what or where that is. I can't find it in this product so maybe find out first where that actually lives and consolidate to one package.

Can we rename these while we are at it? Its more like author_feedback, not portal_feedback.

Then update author views mentioned in #78 to point to the correct new views.

Files:

Migrate Ownership Form

Move archetype views to Products.ATContentTypes

https://github.com/plone/Products.ATContentTypes

This would be the following views and their metadata files: https://github.com/plone/Products.CMFPlone/tree/master/Products/CMFPlone/skins/plone_content:

  • document_view.pt
  • event_view.pt
  • file_view.pt (don't forget the weird redirect cases)
  • image_view.pt
  • image_view_fullscreen.pt
  • link_redirect_view.py (again, weird case so be careful)
  • link_view.pt
  • newsitem_view.pt

In addition, let's make sure that the plone.app.contenttypes version of these views is implemented first and then migrate:

  • folder_full_view.pt
  • folder_full_view_item.pt
  • folder_summary_view.pt
  • folder_tabular_view.pt

I think that these migrate as well and that there is another plip which is basically redoing these listings but it needs to be confirmed:

  • folder_listing.pt

I think this also means that having ATContentTypes will require also having CMF plone unless these get migrated to views as they move over. I encourage they do but realize this is a lot of work, and maybe its just easier requiring CMF. Also for customization reasons - people in the past did a lot TTW with this. It's up to whomever closes this to be the arbitrator of how nice they want to be.

In addition, we need to migrate the edits and what not that go with them. This includes the following in https://github.com/plone/Products.CMFPlone/tree/master/Products/CMFPlone/skins/plone_form_scripts:

  • document_edit.cpy
  • document_edit.cpy.metadata
  • event_edit.cpy
  • event_edit.cpy.metadata
  • file_edit.cpy
  • file_edit.cpy.metadata
  • image_edit.cpy
  • image_edit.cpy.metadata Plone
  • link_edit.cpy
  • link_edit.cpy.metadata
  • newsitem_edit.cpy
  • newsitem_edit.cpy.metadata
  • validate_event_edit.vpy
  • validate_file_edit.vpy
  • validate_image_edit.vpy
  • validate_link_edit.vpy
  • validate_newsitem_edit.vpy

Validate Title

RE: https://github.com/plone/Products.CMFPlone/blob/master/Products/CMFPlone/skins/plone_form_scripts/validate_title.vpy

This is a tricky one. I've done grepping in the past and seen this guy littered throughout the code. That was about a year ago but it could still be around. At the moment the task is to find out who is referencing this and why so we can make a better decision about it. If its coming completely from cpy's, which might be the case, please update all the tickets for those components and then point them to greener pastures.

Migrate Content Status

To be honest, I have no idea what this feature is. So, if you know what it is, can you please move it to browser views? Based on the name and the code, I think it should go to p.a.content.

Also heed this note:

  "NOTE: This form is used in two different ways - from folder_contents,
  allowing you to publish several things at once, and from the state
  drop-down. In the first case, the 'paths' request parameter is set;
  in the second case, giving the relative paths to the content object
  to manipulate; in the second case, this parameter is omitted and the
  path of the context is used."

In migrating, I would make 2 separate views and do the simple case first.

Files:

  • Products/CMFPlone/skins/plone_forms/content_status_history.cpt
  • Products/CMFPlone/skins/plone_form_scripts/content_status_modify.cpy
  • Products/CMFPlone/skins/plone_forms/content_status_history.cpt.metadata
  • Products/CMFPlone/skins/plone_form_scripts/content_status_modify.cpy.metadata
  • Products/CMFPlone/skins/plone_form_scripts/validate_content_status_modify.vpy

Save default page -> browser view

Select view template -> browser view in p.a.content

plone_images: clean up, dump, modernize?

RE: https://github.com/plone/Products.CMFPlone/tree/master/Products/CMFPlone/skins/plone_images

Some if the things in plone_images need to go to sunburst, and some need to go to... I don't know. A lot of these are from back in the day when we didn't have sprints

When in doubt, just delete it. These icons all need modernizing and the css that does with them as well. There are ones of particular interest that we should be careful about, for example anything that kss or javascript needs to display interaction (content tree +/-, spinners, ...what else?).

I would actually be pretty happy to see someone update the entire default icon set to something modern, sprited, and all css overlaid but thats up to the expert themers in the community. Everything in this directory falls under "plone theme" EXCEPT, some tool icons (which we see in the ZMI).

Tool icons can stay until we have no more tools. If there is a way to get those to point to actual resources then all the better.

Don't forget to delete the directory registration when its empty.

Modernize Member Search

At minimum, please migrate as is to a z3c.form and views. If you want to be fancy and extra super awesome, make this work behind an API and throw some love into that UI. That would be making member_search_results be a json response and the form just updating based on that. Implementers choice!

This stuff is O.L.D.

Files:

  • Products/CMFPlone/tests/member_search.txt
  • Products/CMFPlone/skins/plone_forms/member_search_form.pt
  • Products/CMFPlone/skins/plone_forms/member_search_results.pt
  • Products/CMFPlone/skins/plone_forms/member_search_form.pt.metadata
  • Products/CMFPlone/skins/plone_forms/member_search_results.pt.metadata

Upgrade step for portal properties and old GS profiles.

We will need an upgrade step that takes the old portal property-based GS files and converts those settings into the new p.a.registry-based settings. This task should be started after changing the prefix of the p.a.registry entries from plone.app.controlpanel.* to plone.*.

Migrate Personalize Form

Move discussion cpts to plone.app.discussion

Modernize sendto

Migrate site feedback to z3c.forms

Move password_reset info into password reset tool

This may be started in a branch of ProductsPasswordResetTool. Check at https://github.com/plone/Products.PasswordResetTool/tree/plip-13260-cpy-removal and make sure the below files are there. Make sure this build points to this branch... then delete!

Files affected:

I am nervous about the integration of this and the member_prefs stuff, which is at #88 . I'm pretty sure PasswordReset is the right package but I could be wrong here.

Migrate Content Status History

Take heed of this note in the cpt::

  "NOTE: This form is used in two different ways - from folder_contents,
  allowing you to publish several things at once, and from the state
  drop-down. In the first case, the 'paths' request parameter is set;
  in the second case, giving the relative paths to the content object
  to manipulate; in the second case, this parameter is omitted and the
  path of the context is used."

I think that warning should be heeded, but the new implementation of folder contents listing might not need. The fact that note is needed is a canary in a coal mine. Start with the simplest case, which is the state drop down. This might be a "chuck the code and rewrite" candidate since this should be a simple browser view if anything. You may want to just use plone.api to simplify things. Don't overthink this.

Then look at the multiple items case. I think @vangheem is working on rewriting a lot of this so consult with him on whether or not this will still be needed.

This touches the following files:

Remove all monkey patches.

As a proof of concept I used monkey patches for the sync mechanism. Those patches need to be removed.

Migrate Rename/Copy/Cut/Paste/Delete

I'm not sure if this is addressed in the new folder listing plip or not. Please coordinate with them to see if its already re-implemented. If not, move to a utility or something. I swear @vangheem has this code already... somewhere...

Note that this is referenced from folder_contents, and that will need to be updated to reflect the new paths.

Files Rename:

  • Products/CMFPlone/skins/plone_scripts/folder_rename.cpy
  • Products/CMFPlone/skins/plone_scripts/object_rename.py
  • Products/CMFPlone/skins/plone_scripts/folder_rename.cpy.metadata
  • Products/CMFPlone/skins/plone_forms/folder_rename_form.cpt
  • Products/CMFPlone/skins/plone_forms/folder_rename_form.cpt.metadata
  • Products/CMFPlone/skins/plone_form_scripts/validate_folder_rename.vpy

Files Copy:

  • Products/CMFPlone/skins/plone_scripts/folder_copy.cpy
  • Products/CMFPlone/skins/plone_scripts/folder_copy.cpy.metadata
  • Products/CMFPlone/skins/plone_scripts/object_copy.cpy
  • Products/CMFPlone/skins/plone_scripts/object_copy.cpy.metadata

Files Cut:

  • Products/CMFPlone/skins/plone_scripts/folder_cut.cpy
  • Products/CMFPlone/skins/plone_scripts/folder_cut.cpy.metadata
  • Products/CMFPlone/skins/plone_scripts/object_cut.cpy
  • Products/CMFPlone/skins/plone_scripts/object_cut.cpy.metadata

Files Paste:

  • Products/CMFPlone/skins/plone_scripts/folder_paste.cpy
  • Products/CMFPlone/skins/plone_scripts/folder_paste.cpy.metadata
  • Products/CMFPlone/skins/plone_scripts/object_paste.cpy
  • Products/CMFPlone/skins/plone_scripts/object_paste.cpy.metadata

Files Delete:

  • Products/CMFPlone/skins/plone_scripts/folder_delete.cpy
  • Products/CMFPlone/skins/plone_scripts/folder_delete.cpy.metadata
  • Products/CMFPlone/skins/plone_scripts/object_delete.cpy.metadata
  • Products/CMFPlone/skins/plone_scripts/object_delete.cpy

Constrain types -> browser view

Convert "Delete Confirmation" to a browser view

Login: Part I

I had huge plans to rework login completely but this might fall out of scope of what we can actually do in a small amount of time. Instead, lets integrate gils branch and then make plans after that. The main thing we need to add in this release are TEST CASES (non doc test test cases). Be smart about them and don't do features that are likely to deprecate immediately. You might want to just remove things as well, for the sake of this being a major release and having the opportunity to do so.

@esteele: How angry do you get thinking about having login as a separate package? Does it makes sense?

@gforcada 's work on the migration is at: https://github.com/gforcada/login_forms

Once that is merged in, remove everything at https://github.com/plone/Products.CMFPlone/tree/master/Products/CMFPlone/skins/plone_login

Other relevant files:

  • Products/CMFPlone/skins/plone_ecmascript/login.js
  • Products/CMFPlone/tests/LoginAndLogout.txt
  • Products/CMFPlone/tests/testSSOLogin.py
  • Products/CMFPlone/tests/emaillogin.txt
  • Products/CMFPlone/tests/testEmailLogin.py
  • Products/CMFPlone/tests/testLoggedIn.py

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.