Please login or register to participate.
Wiki Page

Adding additional new products to Cyn.in 3.1.3

.

Overview

The objective of this wiki is guide about the process of adding additional new products to the Cyn.in 3.1.3

For this task I selected the example.archetype product that is "an example package for learning how to develop an Archetypes-based content type".

example.archetype screenshot

Although this product is available to install from two resources like:

I opted to install it from it's SVN repository:

Step by step

Download the Cyn.in Community Edition Source - v3.1.3 and install as said on the Wiki. When you finish the installation edit the file buildout configuration

cd ~/cynin313-source-snapshot/

nano ~/cynin313-source-snapshot/buildout.cfg

and add the lines bellow:

[buildout]
...
extends = versions.cfg
versions = versions

# This extension will dump a list of unpinned versions
# each time you run buildout.
extensions = 
    buildout.dumppickedversions
    mr.developer

dump-picked-versions-file = dumped-versions.cfg
overwrite-picked-versions-file = True

always-check = true
auto-checkout =
    example.archetype


# Reference any eggs you are developing here, one per line
# e.g.: develop = src/my.package
develop =
   ...
    src/example.archetype
   
...

[cyninbase]
# Add additional eggs here
# elementtree is required by Plone
eggs =
    ...
    example.archetype

zcml =
    ...
    example.archetype

...
#
# specific source checkouts
#
[sources]
example.archetype = svn http://svn.plone.org/svn/collective/example.archetype/trunk/

Later go to edit the configuration file that contains constants used by default during setup handler of ubify.policy

nano ./src/ubify.policy/ubify/policy/config.py

Locate the bellow sections and add the new configuration

PRODUCT_DEPENDENCIES = ('Calendaring',
                        ...
                        'example.archetype',

spacesdefaultaddablenonfolderishtypes = ('Document',
                                         ...
                                         'InstantMessage',
                                        )

Then edit ContentRoot.xml file from default profile of ubify.coretypes products and add the bellow configuration:

nano ./src/ubify.coretypes/ubify/coretypes/profiles/default/types/ContentRoot.xml

...
<element value="Image"/>
<element value="InstantMessage"/>
<element value="Link"/>,
...

Also you need repeat the last past with ContentSpace.xml files from default profile of ubify.coretypes product and add the bellow configuration:

nano ./src/ubify.coretypes/ubify/coretypes/profiles/default/types/ContentSpace.xml

...
<element value="Image"/>
<element value="InstantMessage"/>
<element value="Link"/>,
...

Then re-run buildout

./bin/buildout -vNc user.cfg

When your buildout is complete, you can start the zope server by typing:

./bin/instance fg
This will start the Zope server in foreground mode (so that you can easily kill it by pressing Ctrl + C). Read the scrolling output, if all goes well you will see something like the following when the scrolling stops:

"2008-07-14 13:58:25 INFO Zope Ready to handle requests"

Congratulations, you've managed to get over the difficult parts. Now for the easy / fun stuff:

Open up your favorite browser (Everybody say together with me: Firefox!) :)

Navigate to http://localhost:8080 (if you use the same computer as desktop) or substitute the localhost with the hostname (or even the IP address) of the computer that zope/cyn.in is running on.

You should see the "Zope quick start screen". Cool, you can access your newly built Zope server. Next, navigate to http://localhost:8080/manage . This will give you an HTTP basic authentication request. Use the following credentials to get in: username: admin and password: secret

You will see the standard Zope management interface. On the left you will see a frame when the Id of your previous cyn.in website created. The go to clic on Id and Now, scroll down, and find the item called portal_quickinstaller (Allows to install/uninstall products) and click on that.

You'll get a list of previous products installed, among these check the check-box next to the item labeled "Ubify Site Policy" and hit the Reinstall

button. Do NOT check any other item.

Again, this will take some time and you can watch the scrolling progress in your fg command line window. When it completes, the list will refresh where most of the items will have moved down to the "Installed Products" section.

Great, you don't know it yet, but you've managed to get a working cyn.in installation built out of source! :)

Let's get to proving that: In your browser, type up the following address:
http://localhost:8080/cynin

If you don't like doing as recommended and chose a different ID during Plone Site creation, substitue your ID in place of cyin in the above URL, of course.

After some moments of tense waiting, the familiar cyn.in login screen should greet you and you can get in by using the following standard credentials: username: siteadmin and password: secret

Later when you are logged go the Root space and click to New button and there will show the new archetype called "Example AT - InstantMessage".

 

Eureka!!! the Example Archetypes called "Instance Message" is addable :D

 

Adding a Example Archetypes called "Instance Message" on Cyn.in 3.1.3

 

Continues adding a Example Archetypes

 

Example AT - InstantMessage installed

TODO

  • Write how integrate with meta data block
  • Write how create a new site updates portlet for new content type
  • Write how create a new apps view for new content type
  • Write how integrate my new content type to site stats and content types distribution pie chart
  • Create a Policy product for these configuration

 

Description
The process of adding additional new products to the platform Cyn.in
Comments (23)
huy0007 Aug 23, 2010 11:56 PM
Following this instruction, I attempted to add PloneSurvey and managed to be able to add 'Products.PloneSurvey' to PRODUCT_DEPENDENCIES and 'Survey' to the following section:

spacesdefaultaddablenonfolderishtypes = ('Document',
                                         ...
                                         'InstantMessage',
                                         'Survey',
                                        )

The 'Survey' type then shows up as an addable type on the popup 'New' screen. Howver, when I try to create a new Survey, I then get the error 'Disallow type....'

What else do I need to modify to allow this to be added through the menu?

If I choose to go through the Zope interface by typing .../manage, then add a new 'Survey' through the zope interface, I am then able to add subsurvey, etc... through the main survey.

In cyn.in 2.x version, all these third party products can be much more easily added. Similar to some of other posts, I have been playing with the idea of adding other third party product such as PloneSoftwareCenter, PloneHelpCenter, PloneSurvey, PlonePoll and PloneFormGen... to expand the functionality of this great product. I hope that in the future, this can be done more seamlessly because there are new Plone products out there that can greatly benefit this product and make the adoption alot more attractive to a wider audience. I have introduced this product to our development group and they now want to expand the usage of this from a simple Knowledge Management System to manage some requirement documentation for software development, etc... as a pilot. We potentially roll this out for corporate use if we have adoption from all IT groups. There seem to be a great interest lately on integrating with similar products that I have mentioned above.

This is a great tutorial. Thanks.
macagua Aug 24, 2010 03:19 PM
hi huy0007

It's nice hear your feedback about this tutorial, for the guys that working on this tutorial it's still a draw, but the intention is that cyn.in's community helps to resolves the commons problems to integrate others products to cyn.in ;)

What is the method that are you using for install Products.PloneSurvey? with buildout as a eggs or Zope Products?

can you post your buildout modification here?, for try to help you!!!
huy0007 Aug 24, 2010 04:01 PM
I simply added Products.PloneSurvey to eggs= and zcml= sections and run buildout as above.

Also, is mr.developers required for your example? I couldn't get it installed with some error about svn being an old version but when I tried to update/install subversion, it shows that I have the latest version. I also got an error when Clicking on the 'New' button with the 'InstantMessage' line added to the config.py file.
macagua Aug 24, 2010 07:06 PM
Huy0007 this error also happened to us at Cyn.in - Plone sprint in Venezuela (0), still we can't resolves but some guys here needs to resolves this error for your thesis

I hope that coming soon we can knows how resolves this error.

I think is necessary to modify other parts on ubify.policy product

(0) http://www.cynapse.com/[…]/view
macagua Aug 24, 2010 07:09 PM
not is necessary mr.developers, only I use mr.developers because I like work with example.archetype last version ;)
huy0007 Aug 26, 2010 12:01 AM
I found the solution for the 'disallowed type' problem. Simply go to ZMI portal, then to navigate to 'portal_types' => select "Folder", under Allowed content types section, select new type to allow such as 'Survey' if you use PloneSurvey for example. I also did this for "Large Plone Folder." You can do similar steps for other products such as PloneHelpCenter, etc... and now you can extend Cyn.in with additional functionality from other third party product. In the old cyn.in 2.x version or a plain plone site, the 'Allowed content types' then are dynamically populated when you create a new type and only allowed sub-objects show up when you click on the 'New' or 'Add New' button. With Cyn.in 3.x, you can use the URL query http://site/<sample_folder>/createObject?type_name=<Survey> .... to create the new object (where <sample_folder> is a custom folder you can add through ZMI and <Survey> is an example of a object type to you want to create. Cyn.in developers acknoledged that the new add content screen break Plone compatibility and debated internally whether to follow this approach.

What you have done as the tutorial above fix this issue partially but it is not practical to add and show all the different type of objects statically on the add new content screen. If there are frequently created objects such as wiki or in this example a custom object type or from a third party, it is an acceptable approach.
samuraib Aug 29, 2010 11:33 PM
Hi huy, I try the instructions that you leave. But I could not get that work. I add the content types in the Allowed content type section of Folder but do not work yet. I do not know if I am missing something. Could you be more specific in the steps. By the way reading the code I note a method in src/ubify.coretypes/ubify/coretypes/content/contentroot.py and src/ubify.coretypes/ubify/coretypes/content/contentspace.py named dissallowedtypes() and another method in the ./ubify.coretypes/ubify/coretypes/content/interfaces.py
Mr Dhrija makes offuscate Python, I note yesterday some class that do not go to anywhere o not make anything
macagua Aug 31, 2010 03:02 AM
Hi guys i updated this tutorial with the steps to resolves the Disallow type error
samuraib Aug 31, 2010 03:00 PM
It is interesting the steps are not in the tutorial or I forget read something...
macagua Aug 31, 2010 03:47 PM
The news steps were not on the tutorial before yesterday ;)
huy0007 Sep 01, 2010 10:47 PM
Also perform the same step for Space and you should be able to add these new types. Sometimes, it does not put the object into the same space and I am trying to figure out why.
dhiraj Sep 03, 2010 12:06 PM
Nice work on this, @macagua, a lot of people are interested in doing this in the community. It's quite a complex and non-trivial task to do this successfully, and this is the main reason it's not been documented well - but you are proceeding admirably on this. :)

Keep it up!
macagua Sep 05, 2010 06:11 PM
You know that from my initial contribution on i18n with cyn.in, I readed several source code lines and I thought that is possible to add other content type like are you doing with the Blog content type (formally called Scrawl) for that, me and other guys like @samuraib and @oswaldolo we are working to integrate new addons for cyn.in 3.1.3

For that we create this knowledge it's possible to build it on community, As you said "It's quite a complex and non-trivial task to do this successfully" and it's that is a real scenario for to do.

Because all these task, we are think that all comments and contributions are welcome!!!
macagua Sep 05, 2010 06:12 PM
Thanks @dhiraj for you comments
tmatysiak Nov 01, 2010 09:00 PM
hi macagua,

great tutorial!!

inspired me to mess around with some plone eggs...

Get the plone.survey to work but i'm not able to use every function of it. there surely need to be changes in the ui.

What we would love to use is a poll utility and a small project-management tool where we can keep track of projects and its progress neatly illustrated in a progress-bar or so.

do you have any idea how we can get this things to work or is it not as trivial as i think? ;)

best regards and keep up the great work

Tino
knylander Nov 10, 2010 09:21 PM
Greetings.

I'm trying to get Plone Help Center to work with Cyn.in. I tried the steps in this process and did not have any luck getting the buildout to complete. Instead, I used the process for Zope-2 products without buildout described here: http://plone.org/documentation/kb/add-ons/installing

Plone Help Center appeared in the Zope management interface and installed using the portal_quickinstaller. Everything seems to be active. Unfortunately, the content types are not appear within Cyn.in.

When adding Plone components, is it a hit or miss as to whether the items will appear as new content types?

Thanks.

Kim N.
tmatysiak Nov 10, 2010 09:30 PM
Hi knylander,
I saw that happening installing plonepopoll.
I named the content types in the contentroot and contentspace like they appear in the zope management interface under portal_types.

You have to add them via the zope interface under contentroot and contentspace in portal_types.
Have a look at this ->
http://www.cynapse.com/[…]/?searchterm=poll
knylander Nov 11, 2010 04:53 PM
Thank you for the heads up! I'll try your instructions. If they work, I'll write an instruction set for Plone Help Center.
knylander Nov 20, 2010 02:53 AM
No luck using the instructions. I was able to see the Plone Help Center and the additional types in the ZIM. Added the content types manually per tmaysiak's suggestion. Unfortunately, when I restarted and logged in to Cyn.in, none of the content types appeared (only an error message when I pressed "Add new").

After a full day trying to get it to work, I finally gave up.
macagua Dec 15, 2010 07:32 PM
Hi @knylander my apologies for my late response
Create a new buidlout file called plonesoftwarecenter.cfg and copy the bellow instructions:

# Buildout Configuration File for PloneSoftwareCenter products
[buildout]

extends = user.cfg

############################################
# Eggs
#
eggs +=
    Products.PloneSoftwareCenter == 1.5.5
    Products.ArchAddOn == 0.1
    Products.AddRemoveWidget == 1.4.4
    Products.DataGridField == 1.6
    
############################################
# ZCML Slugs
#
zcml +=
    Products.PloneSoftwareCenter
    Products.ArchAddOn
    Products.AddRemoveWidget
    Products.DataGridField

And later rebuildout like this:

./bin/buildout -vNc plonesoftwarecenter.cfg

With this you can install PloneSoftwareCenter Plone 3.3.5 and later try again with this manual to integrate PloneSoftwareCenter on Cyn.in
knylander Dec 20, 2010 05:45 PM
Thank you for the suggestion! I"ll try it and let you know what happens.
tzicatl Apr 01, 2011 02:09 AM
Thanks for writing this. That saved me hours of code browsing.
marionathan May 26, 2011 03:04 PM
Great tutorial! Worked for me from the first time.
Can you tell how to enable commenting, rating and all the usual stuff that comes after the content display in view mode?
 
Loading