Quantcast
Channel: Planet Plone - Where Developers And Integrators Write
Viewing all 3535 articles
Browse latest View live

UW Oshkosh How-To's: Scripts to find Kaltura videos on a site

$
0
0

On one particular Plone site

If you want to find the Kaltura videos just on one site, add this Script (Python) to your portal_skins/custom folder:

.findKaltura

numfound = 0
results = context.portal_catalog()
print "<p>Found the following Kaltura videos on this site:</p>"

print "<ul>"

for brain in results:
    object = brain.getObject()
    if hasattr(object, "getText"):
        text = object.getText()
        if text.find('kaltura_player') != -1:
		    t = brain["Title"]
		    url = brain.getURL()
		    print "<li><a href='%s'>%s</a></li>" % (url, t)
		    numfound+=1

print "</ul>"
print "<p>Found %s videos</p>" % numfound
print "<p>Searched %s objects</p>" % len(results)
print "Search complete."
return printed

For all sites in a Zope

If you want to find all the Kaltura videos in all the Plone sites in a Zope, add these Script (Python) objects to the root of the Zope: 

.findKaltura2

urls = []
results = context.portal_catalog()
for brain in results:
    try:
      object = brain.getObject()
      if hasattr(object, "getText"):
          text = object.getText()
          if text.find('kaltura_player') != -1:
        	url = brain.getURL()
        	urls.append(url)
    except:
      pass
if len(urls) == 0:
	return "None"
else:
	return "".join(["<li>"+"<a href='"+u+"'>"+u+"</a>"+"</li>" for u in urls])

and 

.listSitesWithKalturaVideos

print "<ul>"
for itemTuple in context.items():
  (id, itemType) = itemTuple
  item = context[id]
  if item.meta_type == "Folder":
    for tuple2 in item.items():
      (id2, itemType2) = tuple2
      item2 = item[id2]
      if item2.meta_type == "Plone Site":
        print "<li>"
        print '<a href="%s">%s</a>' % (item2.absolute_url()+"/.findKaltura2", item2.id)
        print "</li>"
  elif item.meta_type == "Plone Site":
        print "<li>"
        print '<a href="%s">%s</a>' % (item.absolute_url()+"/.findKaltura2", item.id)
        print "</li>"
print "</ul>"
print "<p>Done</p>"
return printed

When you run the .listSitesWithKalturaVideos you'll be given a list of links to click on. Open each one in a background window; each window will show you a list of all the videos in that site.


Karl Horak: Plone and Mobile

$
0
0
In keeping with my New Year's Resolution, here's installment #2 of my promised monthly Plone Metrics.  I'm likely to be one up this month, since I traditionally run the Great Backyard Plone Count in parallel with the Audubon Society's Great Backyard Bird Count and this year that will be February 14-17. 

Meanwhile, I just finished drafting an abstract for the INMM information analysis technical meeting this May in Portland.  I'll be presenting my thoughts on mobile technologies and their impact on nuclear nonproliferation.  With that in mind, I turned to Google Analytics to see how Plone.org is doing with regard to mobile.

The data set begins in September of 2009, when Google started collecting mobile device infomation.  It's clearly increasing and in step with growth in the mobile use of the web. 



The Pew Internet and American Life Project has been tracking "cell internet users" since 2009 and the findings shouldn't be a surprise.  In 2009 31% of all cellphone users browsed the web with their device.  That has doubled to 63% in 2013.

Since 91% of Americans own a cellphone, that's 57% of everyone in the U.S. using their cellphone to access the web or check e-mail.  I assume that similar trends exist for much of the developed world.  In developing countries, matters are not lagging far behind--89.4% of the population subscribe to mobile services.  Almost 20% are broadband subscriptions.   (Thanks, MobiThinking.)

For the moment, Plone.org is growing linearly with regard to mobile.  Here's the data exported into  Open Office Calc with a regression line run through it.  The fit is reasonably good with R2 over 0.83 across 52 months of data since late Q3 2009.


Meanwhile, here's what Plone.org looks like on my Droid.  (I wanted to get a screenshot with Google Glass, but the voice recognition keeps insisting that I'm searching for "clone.") 




And here's the usual Drupal comparision.


And finally, just to widen the field a bit, here's the mobile screenshot for Liferay.


This last one is interesting because its format is one of  a long, long vertically scrolling page.  I'll save an examination of the UX of these mobile interfaces for another time.  I include Liferay here because it's only three stops away on the Green Line in Real Story Group's CMS subway diagram.


The Green Line is Portals and Content Integration.  More on this subway map later, but I need to hold back something for March.

UW Oshkosh How-To's: How to fix TinyMCE browser issues

$
0
0

Internet Explorer 9 Fix

TinyMCE is not working at all?  The quickest fix is to enforce IE9 to be IE8.  If you do this make sure to do the next fix below for IE 8.

Paste:

<meta content="IE=EmulateIE8" http-equiv="X-UA-Compatible"> 

into the <head> of your main_template.pt file

Make sure to remove any other meta tag which sets IE to a compatibility!  Look for tags similar to "IE-Edge".

Where to find main_template

The easiest way to find it is to go to 
 
ZMI > portal_skins > Find tab
 
and search for "main_template".  The one that is actively in use will be marked by an asterisk next to it.
 

Normally you can find it here:

(Plone Classic Theme) ZMI > portal_skins > plone_templates > main_template.pt

or

(Sunburst Theme) ZMI > portal_skins > sunburst_templates > main_template.pt

unless it's already been customized, in which case it will be in 

ZMI > portal_skins > custom

 

Internet Explorer 8 and Firefox 4+ Fix

TinyMCE is not working at all again?  This solves many of the issues in TinyMCE from improper loading, javascript errors, etc...  Follow these steps.

1. Go to ZMI > portal_java_script
2  First check "Development mode" on the top.  (We will need to purge the cache)
3. Find tiny_mce_init.js
4. Uncheck "Merging allowed?" and "Caching allowed?" checkboxes. (if not unchecked already)
5. Find tiny_mce.js
6. Uncheck "Merging allowed?" and "Caching allowed?" checkboxes. (if not unchecked already)
7. Go to bottom, click save.
8. Go to your webpage with the editor running, Ctrl+F5 for a refresh.
9. Go back to ZMI > portal_java_script
10. Uncheck "Development mode", go to bottom of screen click save.
11. Go back to your page, hopefully it will be working.

 Confirmed Fixes: Firefox 4+, IE8.

 

Firefox 11

Firefox 11 was released with a iframe bug.  Multiple TinyMCE windows on one page will not load correctly.  This is due to the bug in Firefox 11, not TinyMCE.  Firefox 12 resolved this problem, I recommend upgrading Firefox.

 

 

 

 

Lennart Regebro: collective.portlet.content 1.8.1 released

$
0
0

This portlet shows a content item as content in the portlet.

Changes since 1.8 is:

  • Added German translation and moved portlet title and description to i18:domain plone to make them translateable in the add portlet dropdown, too [fRiSi]
  • Fixed #1: The defaults in the form and the defaults on the Assignment were different. [regebro]
  • Fixed #5: Added portlet id based class to the portlet tag. [regebro]
  • Fixed #8: You now only need View permission on the content, not on it’s parents. [regebro]

Filed under: plone

Four Digits: web_intelligent_plain_text_to_html and UTF-8

$
0
0

When using 'web_intelligent_plain_text_to_html' from portal_transforms, make sure your input is decoded to utf-8 and the output is unicode.

Creating the option for users to create text in a textarea and save that on a object will always encounter encoding problems you did not test. Users will use charaters like é or ö in some kind of sentences. When displaying this message using web_intelligent_plain_text_to_html, to auto convert url's or newlines you have to make sure you can handel them all.

Here we will have a tal snippet to display contect.getMessage:

<span tal:content="structure python:
          unicode(portal_transforms.convert(
                  'web_intelligent_plain_text_to_html', 
                   context.getMessage().decode('utf-8')).getData(), 
                   'utf-8')">
  The message
</span>

This way getMessage may return éëê like characters and will still convert all urls to clickable url's. web_intelligent_plain_text_to_html works pretty nice by default, and will convert all links to email or urls to clickable links and convert newlines to html br tags.

Nothing worse than getting:

UnicodeDecodeError: 'ascii' codec can't decode 
byte 0xc3 in position 284: ordinal not in range(128)

Six Feet Up: Top Reasons to Migrate to WebUnity

$
0
0

Plone 3 Loses Support in 2014

With the expected release of Plone 5 later this year, Plone 3 will become officially unsupported. This means no more security patches. If you haven't migrated to Plone 4 yet, you need to do so in the coming months.

The hidden costs of upgrading

Upgrading is now necessary, but the cost of doing so, and the features you will receive, can vary greatly based on the decisions you make. For a traditional upgrade you will need to go through a discovery phase to determine what features are critical, what packages are still maintained, and how you can move your custom setup forward. You will need to bring all current templates up-to-date with the latest Plone best practice, merge catalogs, set up buildout for deployment, move custom folder items into products, migrate your data to the newest version, test and tweak, test and tweak (yes, multiple times), and then deploy to production.

Is there another, simpler option? Fortunately, yes: you can avoid a lot of headaches by considering an out-of-the-box solution with guaranteed to work add-ons.

WebUnity Logo

WebUnity is the multisite Plone package designed to have all the add-ons you need in a maintained and continuously supported package. Here are some main reasons why you should consider upgrading to WebUnity on Plone 4.3 instead of a custom Plone installation.

All the add-ons you need, guaranteed to work

Six Feet Up created WebUnity to solve the challenges many of its clients presented. The company took its newest Plone add-ons, Resonate and Spotlight, and bundled them with Lineage and other proven packages (EasySlideShow, calendaring abilities, etc.) that most organizations need. WebUnity's core packages are therefore guaranteed to work well with one another.

WebUnity = Lineage + Resonate + Spotlight

Get a fresh start fast

WebUnity is set up as a clean install with a customizable base theme. You can either style the included theme to match your brand, or use a fully custom theme. Your existing content can also be imported in WebUnity or you can decide to start from a clean plate.

Because WebUnity is an existing package, it can be set up on a staging environment much faster than going through the tedious process of designing, specifying and developing a vanilla Plone site.

Continuous updates + predictable budget = peace of mind

Because of WebUnity's out-of-the-box design, we can keep your website up-to-date with the latest security patches and features, and you can maintain a consistent budget. No more worrying about a core add-on for your site being abandoned, or how much it will cost to upgrade your custom site before a critical security patch can be applied.

What will you decide?

Your site might require customizations no matter what. Depending on the complexity of those customizations, they can be added to WebUnity or our Plone Developers can upgrade your site to a custom version of Plone.

Learn more about your options:

Noe Nieto: Sublime 3 en Fedora 20

$
0
0

Sublime 3 en Fedora 20

Quise instalar Sublime 3 sin usar la línea de comandos. Así es como le hice.

Descargar Sublime

La página oficial de Sublime 3 es http://www.sublimetext.com/3. Tuve que descargar la versión más reciente. Después descomprimí los archivos en la carpeta ~/Applications/Sublime3.

Asi se ve mi carpeta de sublime 3

Puedo ejecutar Sublime 3 haciendo doble click en el icono lila con nombre sublime_text.

Pero quiero poder lanzarlo desde el catálogo de actividades de GNOME 3.

Hacer que aparezca en las actividades de GNOME 3

Sublime 3 ya trae un archivo con nombre sublime_text.desktop. Lo copié a la carpeta ~/.local/share/applications para que GNOME incluya a Sublime como parte del catálogo de aplicaciones.

Copiar el archivo ``.desktop``

El archivo .desktop contiene la ruta hacia el binario ejecutable sublime_text pero tuve que corregirla para que apunte a la carpeta adecuada. También corregí la ruta al ícono de 255x256 pixeles, para que se vea bonito.

Copiar el archivo ``.desktop``

Y listo. Ya sólo me falta saber como integrar sublime en el administrador de archivos de GNOME.

JC Brand: Converse.js: XMPP instant messaging with Javascript

$
0
0

It is now possible to use converse.js, the Javascript from collective.xmpp.chat, in a standalone way, to communicate with any public Jabber account.

Lately I've been spending time refactoring converse.js the Javascript library used by collective.xmpp.chat the instant messaging add-on for the Plone CMS. My goal is to make it usable on it's own, requiring nothing else except an XMPP server to communicate with.

This would enable any website owner to add instant messaging functionality to their website, and due to the federated nature of XMPP, users could chat to any other public XMPP account (once they have been accepted as a contact).

One thing that previously prevented you from using converse.js on its own, was the fact that it made XHR calls to the Plone backend to fetch user data. To fix this, I added vCard support, to converse.js but also to Plone by adding it to collective.xmpp.core.

Last week I reached a significant milestone on the path to this goal, and I'd like to take a moment and share with you.

It is now possible to use converse.js (in a static HTML page) to communicate with Jabber accounts on any public server.

In the demo below, I illustrate this by chatting to a Google user and to a Jabber.org user. In the converse.js page, I'm authenticated with a Jappix.com account and I also use their connection manager to connect to their XMPP server. If you're doing XMPP via HTTP (i.e in the browser), you'll need a connection manager as a bridge to your intended XMPP server. Thanks a lot to the Jappix guys for making their connection manager public!

Note: For detailed fullscreen, make sure that video quality is set to HD, by clicking the gear icon on the video player.

Note

UPDATE: Since this blog post, a production ready version of converse.js has been released. So the following is no longer applicable.

I'm sorry to say that converse.js is not yet 100% ready for primetime as a standalone JS app. There are a few more hurdles (and nice-to-haves) to overcome before we'll achieve this goal:

  • Searching and adding new users still does XHR calls to Plone and should instead query the XMPP server.
  • Service discovery support (e.g so that multi-user chat is only available for servers that support it).
  • Some kind of "Keep me logged in" support when users log in manually.
  • I'm not proud of the CSS and it could probably be improved upon quite a bit.
  • The Jasmine tests are out of date and not passing, also more tests are required.

If you are interested in the project, please contribute by forking the code on github.

Thanks a lot to Alec Ghica and David Ichim from Eau de Web who've made various improvements to both collective.xmpp.chat and converse.js over the past months.


Paul Roeland: Stroopwafels & cake driven documentation for Plone

$
0
0

This weekend (7-9 feb 2014) the Stroopwafel sprint was held in Amsterdam. The idea behind it was to have a ‘meta-sprint’, to organize, strategize and plan for the future of Plone documentation.

It turned out to grow beyond our initial expectations, and much work was done by the participants.

image

Cake-driven documentation was taken to new heights…

You’ll hear much more about the results in the coming months, and in the run-up to Plone 5. But some of the highlights were:

  • we have a plan for consolidating all documentation in one place. That includes docs targeted at the various audiences (end-users, themers, site admins, deployers, developers). We’ve killed many post-it notes and colored dots in the process, but now have a mindmap and a plan. Huge thanks go out to Sisi Nutt, for guiding us, and keeping us all on track.
  • we have a plan for versioning the documentation for the different versions of Plone. This is especially important as Plone5 will bring changes to the user interface. We will be able to have the documentation ready for the version of Plone that users are on.
  • we have a clean separation between the actual documentation and the technical aspects (buildouts, testing frameworks) to make it all look good.
  • we have the infrastructure in place, and working, to create multi-lingual versions of the documentation. Translators will be able to work with Transifex, to make translating much easier (Thanks, Giacomo Spettoli!) and we will even have automated screenshots in the correct language (Thanks, Asko Soukka!)
  • we’ve worked on selecting a correct license for all documentation (Creative Commons 4.0 by-attribution) to maximize the re-use of documentation.
  • we’ve identified gaps in the documentation, and a hit-list of wrong, out-of-date, and misleading info that will be taken down, corrected or re-routed.

All in all, a very productive weekend, and more than enough to do before the next Documentation sprint in Munich, Germany. 

Yes, you read that right: two documentation sprints in a row! 

We have our eyes set on major improvements for Plone 5, not only the software but also the documentation. 

And, as ever, it’s all made possible by the great Plone community. Ten people from six countries worked hard, but also had immense fun doing this.

thanks to all participants, to the people that helped us remotely, and to the Plone Foundation for supporting sprints like this.

Andreas Jung: Debugging a ZODB bloat

Six Feet Up: Why Consider Consolidating Your Websites?

$
0
0

Are you responsible for managing multiple independent websites and microsites scattered across several CMS platforms? How often do you want to share content across your sites and either can’t or have trouble doing so? How much time is wasted figuring out how to get all of your systems to work together? All of these problems can be solved with web consolidation.

What is Consolidation?

Consolidation means making the move to a single system instead of having multiple stand-alone websites. Consolidating your websites into one system allows you to log in once to manage all of your sites, train your teams on only one platform, and reduce maintenance and development costs.

Why Consolidation Makes Sense

Consolidation is a great idea that can look a bit abstract until you see what it can really accomplish for your organization. A good web consolidation solution:

  • Deploys subsites in minutes
  • Shares content across sites
  • Accesses global content, including member directories and other assets
  • Provides control to ensure marketing consistency
  • Still allows teams to control their own sites or subsites as needed
  • Simplifies maintenance and security updates

Alternatives Present Shortcomings

As a workaround, some organizations rely instead on a few alternatives:

Copy and Paste:

Many companies that have not consolidated their websites and CMSs into one system copy and paste the same content on all of their sites. It’s a time consuming and error-prone option. Add to that SEO punishment for posting the same content to multiple sites, and it’s a no-win situation.

Traditional Multisite CMSs

Traditionally, multisite CMSs were built with the web development company in mind, to handle multiple independent client sites. These let you install updates once, but that's about it. Newer solutions recognize that one organization can have multiple websites that need to interact with and connect to one another.

WebUnity: Six Feet Up’s Consolidation Solution

WebUnity Logo

WebUnity is the complete multisite Plone package for teams that want to consolidate their sites to a single platform. WebUnity allows you to quickly create subsites and additional websites, share and sync content across sites, create a global directory of employees and faculty that can be featured on the various sites and pages, and can be implemented faster than other consolidation solutions. Learn more about WebUnity >

Consolidation is the best choice for a company that needs to put all of their sites on one platform. However, if you need to keep the existing systems that you have in place, but still would like to avoid copying and pasting content, then consider integrating your sites with a solution like PushHub (Read: Why Consider Integrating Your Websites).

Next Steps

UW Oshkosh How-To's: How to customize navigation

$
0
0

If you find yourself using "exclude from navigation" a lot then you probably want to take a step back and think about what you trying to have the navigation show. For example in my usage I really only want to see "Pages" and "Folders". I do not want my images showing up in the navigation, I also don't want events or news showing up in the navigation. I can choose what content types I want plone to show in the navigation by editing the "navigation" setting in "site setup".

You will need to have at least manager access to edit "site setup"

Directions

 
  • Log in your site
  • Click on the "Site Setup" from the menu under your name in the personal toolbar. OR The URL for site set up is https://MyWebsiteURL/@@overview-controlpanel
  • Select "Navigation"
  • Check the "Displayed content types" that you want to see in the navigation *sceenshot below
  • Save
  • Test
 
You should now only see the content types you have chosen appearing in the navigation.
 
NavigationSettings
 

Four Digits: Cathedral Sprint, a short update

$
0
0

Our developers Roel Bruggink and Kees Hink are in Cologne, working on the new Plone 5 release.

It's the morning of the fourth day here in Cologne, so time for an update.

We are about 30 developers now, and we've split up in 6 teams, larger or smaller. I'm in the Theme Team. We're working on the new Barceloneta theme for Plone 5. It will be beautiful to look at. Also, the HTML will be a lot cleaner.

Roel is working in the Javascript team. Plone 5 will ship with beautiful Javascripts that will make it even easier to use. They're also taking care to make our Javascript setup reusable and well tested.

The Quality Assurance team are making sure the whole Plone stack keeps being tested thoroughly. One nice extra is that soon we will have screenshots from our automated tests.

Other people are still removing old form libraries in favour of new ones, taking care of migrations, fixing bugs in contenttypes and events, working on the new plone.org... There was an Open Spaces session about the Products section on plone.org (will be discontinued, at least in its current form). There was also an Open Spaces on the long term policy for Plone and its technology stack (with respect to Zope2 and Python 3).

Lots of stuff happening! You can get an idea of the buzz that's going on via Twitter. And now, if you'll excuse me, i must return and remove some more DT/DL/DD elements from templates. We'll post again soon!

Karl Horak: The 6ht Annual Great Backyard Plone Count

$
0
0
It's that time of year... the Great Backyard Bird Count, organized by the Audubon Society, the Cornell Institute of Ornithology, and Bird Studies Canada.  And that means that it's also time for the Great Backyard Plone Count, this weekend Friday through Monday.

Because many Plone sites are intranets behind firewalls, they can't be located by crawling the web.  This is a chance for developers, site owners, and users to stand up and be counted.  It's a non-scientific, totally voluntary effort for self-reporting Plone-based web portals.  If your input from February 2013 is still current, you're already done. 

That said, the input form on the Google Docs spreadsheet is open.  Anyone can submit sightings of Plone in the wild.  The form will stay open until midnight Monday 17 February.  I'll be doing some mining of Delicious and other social bookmarking services this month and posting them as well. 

Although there's significant bias in a survey like this, the real value comes from tracking trends over time.  This is the sixth annual Backyard Plone Count (since 2009) and as the number of yearly data points increase, we'll better be able to extrapolate from the observations.  It's not that we're getting an absolute count of Plone market penetrations (just like the GBBC isn't counting individual birds), it's just that we're getting a repeatable sampling by the community.  It is as much a measure of community involvement as it is a metric of the actual number of Plone sites out there.

So get out there and spot some Plone sites -- and while you're at it, spend a little time counting birds at your feeder.

Thanks in advance!

Ramon Navarro Bosch: Theme Team - Cathedral Sprint 2014

$
0
0
Really thanks to @schulungen and @timostollenwerk for the #CathedralSprint!

Some photos : https://www.icloud.com/photostream/ca-es/#A25oqs3q2bM7z

We’ve done a LOT of work these weeks, in my opinion one of top productive sprints I’ve been! We really focused on moving forward and having a alpha release for Plone 5! Discussions, implementation, testing, all at the same time thanks to a 25 people team working all day long! I really felt like we are a big engine working perfectly on the same direction! Thanks ! Its been amazing !

Theme
From the initial design we had on plone5 skin we moved forward to have a barceloneta theme in a advanced situation. Albert Casado has been working all week tunning the design to look properly. We tried to maintain as less LESS as possible so it can be a good example for future themes (570 lines right now)

Toolbar design
My initial idea is to have a functional version of the plone toolbar, the place were we are going to have the options/menus/… After some discussion we decided to push for a left-fixed toolbar with three different positions on desktop and two on mobile: (collapsed/thin/expanded). The desired behaviour on mobiles is that is hidden on the left and you need to swipe the screen to the right to see it.

4 Desktop: There is the option to have the toolbar on the left and on the top (in case somebody wants to have it on the top)

https://dl.dropboxusercontent.com/u/667918/Plone5/left-topbar-normal.tiff
https://dl.dropboxusercontent.com/u/667918/Plone5/left-topbar-expanded.tiff
https://dl.dropboxusercontent.com/u/667918/Plone5/top-topbar-normal.tiff
https://dl.dropboxusercontent.com/u/667918/Plone5/top-topbar-expanded.tiff
https://dl.dropboxusercontent.com/u/667918/Plone5/anonymous.tiff

TODO:

* We still need to work on the mobile css to enable the toolbar and the reactjs mockup bundle enabled so we can use it to hide and show the toolbar.

* We need to check on really old browsers how is it seen and use modernizr to enable or disable options.

Folder Contents
Nathan merged the plone.app.toolbar folder_contents view so we have it native on Plone5. In case you access folder_contents we get the view without any toolbar option ( it doesn’t make sense we can add on toolbar if we can change on structure widget the context and not change it on the browser url/view context)

In the normal case, folder contents will be opened as a modal, what means that any option there will open another modal. We need to check and think about that.

https://dl.dropboxusercontent.com/u/667918/Plone5/structure.tiff

Plone Toolbar native Plone (no diazo works)
We want that plone toolbar is there with and without diazo so we designed the less/js mockup files so the plone bundle ( native js/less 4 plone ) will render properly the toolbar.

https://dl.dropboxusercontent.com/u/667918/Plone5/no-diazo.tiff

Plone by itself will render the toolbar and the needed less files using as less bootstrap as possible ( only the classes for the navigation )


Toolbar integration
All toolbar actions are obtained from portal_actions, we added an extra feature that shows the level where it’s rendered (level0 on the toolbar, level1 on the … menu option)

We also added a new contentmenu that shows the option to manage the port let managers so we can remove the manage_portlet link on the page.

The top tiny logo is a view let that can be overwritten so customized.

DT/DL/DD remove
Kees has been working hard on removing the DT/DL/DD and some of them are already merged and skinned. There is a list of pull request on the github ticket

TODO: needs to be merged

Footer from viewlet to portlets
Giacomo worked to find a solution for the footer. We want that the user can modify its content and that we can have different footers depending on the context ( multilingual sites 4 example need a different footer depending on the language we are ) so we moved the viewless to a port let manager. As performance was a possible issue we did some statistics performance tests so we saw that adding the new port let manager was only 2% of overload.

Logo customization
Giacomo was working hard also on that with a site control panel, there is going to bé an option to upload the site logo (finally!) It needs the merge of plone.app.controlpanel with z3cform PLIP to go forward !

TODO: needs to be finished

z3cform control panel
Timo has been working on merging some of the control panel forms on z3cform, we need them as the markup is different and we would like to skin it with the z3cform layout.

TODO: needs to be finished

How to set modal actions
David designed a way actions can be called as modal, on the actions.xml file we can define a modal property with the json options on it so we can call them on a modal. We applied that behaviour on all the actions that may need it, rename, delete, folder_contents,...

Sitemap
Mike has been working on a new site map design that can be collapsed using the toggle pattern. It looks great and by default it will show it expanded.

TODO: needs to be merged and skined

Design on edit forms
We brainstormed on how edit forms should look like, one idea that we loved is to remove the tabbed navigation ( it produces a lot of confussion when we have a required field on a separated fieldset, so we moved to have a continuous page with the same tabs on the top that scroll spy to the desired section. We also thought that this tab navigation should have the action buttons and it will be fixed top. Rok is working on the needed pattern.

TODO: patterns needs to be done

Nested menus on …
On the new toolbar we have a more options section where we are going to handle the less used option (display/cut/copy/paste/manage_portlets)

Document by line
We thought about moving the document by line to the bottom of the content and designing them as pills so we can show more information about the content in a modular way (like language, content_type… )

TODO: It’s half implemented

Theme tests
Asko did a great job writing soucelabs tests so we can see the result of the theme on all the possible browsers and mobile devices.

http://jenkins.plone.org/view/Theme/

Accessibility
Paul has been working on the accessibility of the theme, taking care of how to design the markup and less to be as accessible as possible.

TODO: We need to figure out how many things are on Plone that doesn’t respect the global accessibility rules (AA)

Sumary
Finally, we have all the work done on the plips/plip13787-main-template.cfg buildout on coredev. You can checkout and try it! I'm happy to have a buildout configuration really close to Plone 5!

When we can deal with the 6 failing tests on this configuration we will merge on plone5 master all the work and we will be able to go forward!



Tres Seaver: PyTn 2014 Pyramid Tutorial

$
0
0
I'm giving a 2-hour Pyramid tutorial at the first PyTennessee conference this weekend.

UW Oshkosh How-To's: How to add a users name to an email from Plone Form Gen (pfg)

$
0
0

In a PloneFormGen form you will notice that when someone submits a form that the email address of the Plone site appears in the "From" area of the resulting email. If you have a lot of submitters this can be a headache because you want to see the name of the person in "From" area of the email NOT the plone site email address. As long as you have form fields name "first-name"& "last-name" you can have that information appear in the "From" area. This is how you do it. 

  • Create a PloneFormGen form
  • Create two fields a "First" and "Last" name field (make sure you know what their short names are. In my case it was "first-name and last-name"
  • Open up your "Mailer" adapter
  • Choose "Overrides"
  • Put this expression in the "sender expression" string:${request/form/firstname} ${request/form/lastname} <${request/form/replyto} >
  • Of course if you only want one of those fields just don't include the one you dont want OR if you wanted the email of the person instead change the string such that its using the name of the email field.. ex string:${request/form/email} 

 SenderExpressionOverride

NOTE

While this works in Apple mail. if you view this in "Gmail" you will see (unknown sender). So id suggest requesting the email field instead of the name if that will be an issue for you or your users.

Victor Fernandez de Alba: Cathedral sprint 2014 plone.org team report

$
0
0

I’m back at home after an awesome week sprinting on plone.org reboot project and Plone 5. The organization was amazing, thanks to Timo (@timostollenwerk) to make it so perfect. I want to thank to the Plone Foundation and GfU Cyrus AG () for sponsoring the event and specially thanks to my employer, UPCnet for allowing me to attend.

I was mainly focused in working for the reboot of plone.org site. We decided that we should finally will go for an initial launch on Plone 4.3, taking care of doing things right for ease an (eventual) future migration to Plone 5. We also wanted to use the same approach when using technologies than the ones used in the new Plone 5 theme: plonetheme.barceloneta.

Keeping this in mind, we are using the latest implementation of p.a.contenttypes, p.a.event, p.a.z3cforms and wildcard.foldercontents. We also wanted to integrate p.a.widgets into the project, but we’ve found that the current state of it (specially under Plone 4.3) was a bit unmature yet and we’ve hold it up until we will have a more stable version (which, after the sprint, it’s near to be ready!). We will try to include it as soon as we can.

The first two days we worked on make the theme look shiny, make it usable and put some pixel loving into it. As Barceloneta, we are using Bootstrap 3.1 and LESS to build the theme. We are using as much as possible the new feature of LESS 1.6.x series, import by reference, in order to keep CSS duplication as low as possible.

On wednesday I did an initial implementation of the new contributor profile pages as Carsten Senger (@csenger) started to work on the stats data retrieval engine. It will have the inital form of a nightly run script that will retrieve data from different sources (GitHub, StackOverflow, Gmane) for later show in the contributor profile. We already have a working version of the engine, as we will continue improving it and add new data sources.

For the member profile we did an initial implementation extending the user schema using the brand new p.a.users based on z3c.forms and using that data to feed the profile pages.

Asko Soukka (@datakurre) helped me to setup the ploneorg buildout for make plone.themepreview work for it. I have to way that he did an amazing job with Robot Framework and it’s a tool that every Plone project should have.

We had an open space for debating how the products page will be in the new plone.org site. We decided that we will get rid of the unmantained and bloated Products.PloneSoftwareCenter and siblings. We want a more lightweight and simple add-on product catalog powered with Dexterity that will have a reduced amount of metadata compared with the PSC one. The whole add-on products section will be powered by a faceted navigation. The add-ons releases will no longer be hosted in plone.org (PyPi server feature) as there is no point to have it twice in PyPi and in the site.

We will put in place a way for award add-on products with a “certified” badge. It will work based on the accomplishments of the product. There is already a list of best practices when developing an add-on product, like having an uninstall profile, have translations, etc. People will be able to send for review their add-on as they think it passes all requirements.

We will also reboot all the information for that catalog and no migration will be done. This will ensure that product owners will update the information for the products which are still maintained and alive in the catalog. Issue trackers (Poi) will also be deprecated too as there are plenty of tools out there (eg. GitHub issue tracker) that do the job more efficiently than it does.

On thursday I worked on making eea.facetednavigation and collective.cover play nicely with BS3.1. We will use c.cover to have a flexible layout on the home page and (potential) subhomes.

Unfortunately, we had no time to work on the home page tiles, but we will in the next weeks. Albert Casado (@albertcasado), who is the responsible for the new shiny Plone 5 toolbar and who did a terrific job on Barceloneta theme during the sprint will help me with that and to polish the theme itself.

As soon as possible we will have a demo site for you to see, I’ll keep you posted.

Bo Simonsen: My first sprint: The Cathedral sprint 2014

$
0
0

I wanted for a long time to join a Plone sprint but due to various reasons I did not find the time and possibility until now. I have been doing Plone consultancy services for around 5 years now, and contributing to Plone core for around 1.5 years, so it was definitely time to join a sprint and get some work done and meet the other core developers.

The main purpose of the sprint was to get a alpha version ready of Plone 5, and I think that goal was almost reached, even though some tests were still failing in the end of the sprint. The sprint took place in Köln/Cologne, and me and my colleague, Thomas Mogensen, joined the full sprint (5 days), sponsored by our employer Headnet ApS.

The tasks, which were to be completed, were divided in to 5 different categories whereas the first two had the highest priority (theme and js):

I went to work on “cleanup” and my colleague went to work on some mockup/js issues. I really felt motivated getting rid of the legacy zope.formlib (and replace with z3c.form) and most of the CMF skin resources there are left in Plone, so I got started on doing some work. Unfortunately I got just some of the CMF skin resources rewritten, but I am quite satisfied with the progress anyway.

The results of my work are the following pull requests:

Timo Stollenwerk did plan and arrange the sprint. He did an excellent job. Every evening he had made dinner reservations, so people that were interested in eating together had the opportunity. Furthermore there were also events planned, for example, a site-seeing tour of the city of Cologne which was very interesting. I did enjoy the evenings a lot, it was nice to talk with the other developers when we were not sitting in front of our computers. The sprint was hosted by GFU Cyrus AG, that provided an excellent sprint location for us with great rooms, great lunch, free coffee/tea, sweets, etc; really nothing to complain about.

In conclusion, I am definitely looking forward to go to yet another Plone sprint, and I did enjoy the days in Köln a lot.

 

Reinout van Rees: Yearly development moment

$
0
0

The company where I work, Nelen & Schuurmans asks you to fill in a "personal development plan" (in Dutch persoonlijk ontwikkelings plan, POP) every year at the start of the year.

I like filling it in every year. Like every company-wide form, there are problems with it, but I like the idea and what it gives me.

Others don't like it. A colleague wrote a blog post about it which is interesting if you're into personal development. His core argument, if I summarize it correctly, is that personal development should be a continuous process. And anything that hints at time limits, like a yearly form does, is inherintly bad as it restricts you in your development.

The second problem he mentions is that it is a personal development plan. Where is the team in that? Where is the company in that?

I myself am, in contrast, quite positive about the yearly form. Thinking about it, I guess the main reason is that I've got a different attitude towards the yearly development plan.

  • I agree that personal development should be continuous. I always develop myself continuously, a form won't change that positively or negatively.

  • It is essential for me to step back a bit from the continuous development once in a while. What am I learning? What is my direction? What am I ignoring? I've got limited time, so a bit of focus is needed. A yearly development plan is a nice trigger, a nice moment, to take a higher-level view. I do it more often than once a year, but this way I've at least got a yearly trigger.

  • It is a form I fill in for the company. So I naturally think about the company and the team. What is the direction we should take? What is my opinion? What should we focus on? I then translate that to what I could do.

  • Something I really need to put in more effort and attention: REST APIs. Consuming them and building them. So I've put that forth as a focus for me this year. (At the same time this sneaks in the suggestion that it'd be a good focus for the company.)

  • Hey, a form where the company asks me how it can help me to develop. In other words, I can give them a shopping list. I'll develop myself just fine, but, yes, there are things the company can help me with:

    • I'd love to attend djangocon.eu again this year. I'll learn a lot there and meet people and sharpen my understanding and opinions. And as I make blog summaries of all the talks, the rest of the team profits. (So: allow me to go and pay for it).

    • This year I want to improve my generic geographical IT knowledge by attending the German-spoken fossgis conference in Berlin (a cheap one: 140 Euro for three days. Add a hotel and a train ticket and you're done). I attended once before and as a team we got for instance the useful mapproxy out of that one. That one sure saved us a lot of money in the Deltaportaal project!

    • There are a bunch of backend systems and unglamorous necessary behind-the-scenes technology at our company. Our internal sentry instance hasn't been updated in a year. Who is going to get it going again? Last year, buildout moved to version 2 and at the same time the distribute/setuptools unfork happened. I spend a bunch of time making sure it all kept working for us. Not many have the interest or inclination to do this kind of work and I like it.

      So... in the interest of the company and the team and in the interest of sharpening my own skills, I'd like to regularly spend time on it. So I've requested a weekly time budget! Some of that time goes to regular maintentance work, but, and that's my motivation: some of the hours I spend are going to save the team even more hours of work! Some of the work I do makes others' work easier. A bit extra attention to a README.rst can mean the difference between "blech, how does this work" and "hey, I can easily fix up this debian package myself".

  • Hey, the "top brass" is going to read this document. So I take the opportunity to state some preferences and my opinion on the direction and make a comment on one of the company policies. A form like this is the perfect opportunity :-)

Now does it work? Such a form? Well, it works in that it got me standing in front of my whiteboard at home from 21:00 till 3:00 in the night... Thinking deeply about my job :-) And that's a good thing: doing some explicit thinking!

Viewing all 3535 articles
Browse latest View live