ericmckean / google-highly-open-participation-plone

Automatically exported from code.google.com/p/google-highly-open-participation-plone
0 stars 0 forks source link

Produce a prototype and associated report showing how Plone can use Google Gears to support offline content management #13

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Google Gears is a technology to run web applications offline. Plone would like 
to support offline use 
cases for content management, where content can be produced or edited offline 
and synched to a 
site at a later date. This is no small task, so a bit of prototyping is in 
order.

The task: Produce a prototype and a report for the Plone developer that 
demonstrate and assess the 
suitability of the use of Google Gears in support this requirement.

Original issue reported on code.google.com by optil...@gmail.com on 19 Nov 2007 at 11:01

GoogleCodeExporter commented 9 years ago

Original comment by l...@gmail.com on 27 Nov 2007 at 7:04

GoogleCodeExporter commented 9 years ago
From my understanding, implementing Google Gears to allow the user to 
seamlessly see the effects of their changes 
offline in the same they would when online would require a rewrite of most of 
the Plone business logic in JavaScript (Please correct me if I'm wrong).  This 
to me makes "no small task" a huge understatement.

However, optilude made it clear that this would be a prototype, but was vague 
on exactly what he/she wanted 
prototyped. Well, I have a suggestion:

1. While online, allow the user to capture all or part of the Plone website 
locally.
2. While offline use JavaScript to intercept all POST requests made on the 
captured Plone website (with the possible 
exception of login, etc...) and store them in the Gears database. (The login 
wouldn't really matter until online anyway, 
when the actual Plone server could authenticate it)
3. Use Gears to create a simple page showing the stored POST requests in a 
table and allowing the user to delete or 
modify them.
4. When back online (and logged in if the login request went unstored), add a 
SEND option at the bottom of the Gears 
created page w/ the tabe of POST requests. (The multiple POST requests could be 
sent via AJAX updating the table 
visually to allow the user to know which POST request have been completed)

This of course could still be complex, but I would certainly be interested in 
trying it out. (Though I'm not sure whether 
I'll be successful given the five-day limit)

Original comment by halter73@gmail.com on 12 Jan 2008 at 4:59

GoogleCodeExporter commented 9 years ago
There is absolutely no way that we will rewrite all (or most, or even a 
substantial amount) of Plone's logic in 
JavaScript. If that's what it takes, then we can't use Google Gears.

The fact is that I don't know a huge amount about GG and how it may be useful. 
That's why we'd like a 
prototype. At the minimum, consider the use cases of browsing and searching for 
Plone content. Then expand 
that to the editing of existing content objects, and then the creation of new 
content items. In the latter two 
cases, there'd need to be some kind of synch to the server eventually.

I'm not sure your suggestions make a lot of sense usability-wise (the user 
wouldn't know what those POST 
requests were, or what the impact would be of replaying them later), but I am 
happy to be proved wrong.

If you want the task you need to say "I claim this task" and we'll assign it to 
you.

Thanks for looking into this!

Martin

Original comment by optil...@gmail.com on 12 Jan 2008 at 6:04

GoogleCodeExporter commented 9 years ago
I claim this task

Original comment by halter73@gmail.com on 19 Jan 2008 at 1:38

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I'm sorry for the big delay; I didn't want to commit myself to something that I 
was
unsure I could devote enough time to. It was finals week at school, and I was
way behind on a research paper. I'll try to hurry up and get something
working over the weekend.

Thanks for any help I'll probably ask for. I've been having fun trying to 
figure out
how to create a Plone product. I'm assuming that's the best way to do this; 
please
correct me if I'm wrong.

Original comment by halter73@gmail.com on 19 Jan 2008 at 5:24

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Hey Martin,

I've been checking around for Plone product/portlet development 
guides/tutorials.
Unfortunately, I have not found anything I can understand well enough (or that 
is 
recent enough) to get me started (reading through the entire API is daunting). 
I know
that you are a very active Plone developer (in fact, I've read over a few of 
your
HOW-TOs), so I was hoping you could point me in the right direction.

Here's some information that might help you understand where I'm at and what 
help I need:

* I am running Plone 3.05.

* I know python, though I figure most of the code will be JavaScript which I 
should
be fine with.

* Therefore, I need to find a way to embed the JavaScript into the Plone pages. 
I'm
tentatively planning on just embedding it via a script tag inside the body of a
portlet, but it might be more appropriate to add the JavaScript inside the head 
tag
of the Plone Pages.

* In order to cache the content, I will need to find a way to retrieve the URLs 
of
the content pages (I figure there must be a way to do this as the navigation 
portlet
needs this also), unless it would be better to have the user manually cache 
each page
he/she wants to view offline. If I were to do the prior, I would probably only 
need
the URLs to the default view of each page (not the presentation_view, etc...) as
this would help to lower download times and bandwidth use.

* I figure it would be a good idea to create a portlet for the end users to 
interface
with, so they can initiate the download of the content pages for caching and 
control
other such functions.

I obviously don't expect you to hold my hand through all these steps, but if you
could point me to some material that might help, I would certainly appreciate 
it.

P.S. Since you seem to be the writer of the definitive guide to Plone 3 
development
(from looking around online), "Professional Plone Development", I was wondering 
if
you would be willing to email a copy my way. It seems it could be very helpful, 
and I
promise I'll buy it if I end up using it outside this contest.

Original comment by halter73@gmail.com on 19 Jan 2008 at 10:19

GoogleCodeExporter commented 9 years ago
Sorry, Martin's on holiday and I've been busy with exams, as you claimed this 
before
the deadline it goes to you.

Some things:

The best way to create a portlet product is to use the ZopeSkel python package
(easy_install ZopeSkel) and user paster create -t plone3_portlet (I think!)

There's a javascript registry controlled by profiles/default/javascript.xml or
similar that allows you to add files to the javascript imports of pages

You can get the urls of pages of a specific type by querying the portal_catalog 
in
python code

And finally, I doubt you can get a free copy of the book ;)  Martin's probably 
got
quite a complicated contract with the publishers, I know I had a copy before he 
got
his free one.

Original comment by mw4...@googlemail.com on 23 Jan 2008 at 11:32

GoogleCodeExporter commented 9 years ago
Thanks Matt,

I'm glad I checked back again for a response, I almost gave up. I will try to 
follow 
your instructions and see what I can do. I figure it's going to be pretty 
difficult, 
but also very interesting (thats why I chose it)!

And finally, as far as the book goes, I just figured it would be worth a shot 
to ask
 :-). It could have been helpful, but I wasn't really expecting to get a copy.

Thanks again for your help.

Original comment by halter73@gmail.com on 24 Jan 2008 at 6:46

GoogleCodeExporter commented 9 years ago
Yeah, we don't even know if this is possible, that's why we want you to look 
into it!

Good luck!

Original comment by mw4...@googlemail.com on 24 Jan 2008 at 7:01

GoogleCodeExporter commented 9 years ago
Hi halter73, can you please give us a status update?  We can give you a couple 
more
days but then the final deadline will be upon us.

Original comment by mw4...@googlemail.com on 31 Jan 2008 at 5:25

GoogleCodeExporter commented 9 years ago
Sorry Matt,

I gave it a shot, but unfortunately time was scarce. My parents don't 
necessarily
appreciate the potential of using Google Gears to allow for offline interactive 
web
access the same way I do. The time I was able spend on the task was mostly used
trying to figure out how to develop for Plone, so I wasn't able to get anything
really interesting done.

This was my first experience with Plone, and I was really impressed by it's 
quality
and the features it provided to the user. The problems I had trying to learn 
how to
develop for Plone was probably due to me looking in the wrong places for
documentation, and if that's so I would definitely appreciate it if you could 
tell me
the best place(s) to look.

Again, I'm sorry I wasn't able to finish the task. I'm sure if I had enough time
and/or skill I would have been able to overcome my troubles, but I guess I 
really bit
of more than I could chew.

Thanks for the opportunity.

Original comment by halter73@gmail.com on 3 Feb 2008 at 9:05

GoogleCodeExporter commented 9 years ago
I'm sorry to hear that, thanks for trying!

The best place is undoubtedly Martin Aspeli's book, unfortunately books aren't 
free!
 The documentation section on plone.org is pretty good too.  For more interactive
things the plone-users mailing list and #plone on irc.freenode.net are both 
good choices.

Also, feel free to get in touch with me directly if you fancy doing some plone
development, I'm sure I can point you in the right direction for documentation 
or
even help finds some ideas like the GHOP tasks.

Original comment by mw4...@googlemail.com on 4 Feb 2008 at 2:37