You are here: Home / Documentation / How To's / Guest Signups with uwosh.timeslot

Guest Signups with uwosh.timeslot

by hietpasd published Dec 23, 2011 04:40 PM, last modified Aug 16, 2016 10:49 AM
How to allow guests to sign up with uwosh.timeslot. This is a walk-through on how to do just that.

First, this isn't perfect, it is a proof of concept.  It can be done with the default uwosh.timeslot.  To achieve this I have to give guests a little more permissions with the timeslot workflow, you'll have to determine the level of permissions and security for your sites.

I recommend if you need both Guest and Logged in capability you either Clone the TimeSlot Types or set each Signup Sheet with different workflows to protect Step 2.  I am only showing a simple way to achieve this functionality. 

Also this is a demo for only single slots not for multiple slots.

 

Step 1 - Setup a Guest View

  • Before anything, setup a Signup Sheet filled with some timeslots.
  • Go to ZMI > portal_view_customizations
  1. Look for choose-timeslot-view
  2. Select it say Customize at the bottom.
  3. You'll be in the text editor, go to the Tab called Registrations
  4. Select ( For: uwosh.timeslot.interfaces.ISignupSheet )
  5. Select ( Request Type: zope.publisher.interfaces.browser.IDefaultBrowserLayer )
  6. Fill-in ( Name: guest )
  7. Click Register, you should see it added to the list
  8. Check the original one called choose-timeslot-view and unregister it.
  9. You should only have one registered and it should state guest in the long text line.

 

  • If you make a SignUp Sheet, if you append in the url /guest after it will load this view.
  • But it won't if your not logged in, oh dang, not to worry.

 

Step 2 - give permissions to guest view

The issue is in the Workflow permissions.  There is a Hidden Workflow State which blocks guests.

  • Wait! shouldn't we keep it hidden?  Yes that would be nice, you can by setting up another workflow and placing it with Placeful Workflow.  I am not going to get into that detail, I will just the basic way.

 

  • Go to ZMI > portal_workflow > Contents Tab > uwosh_timeslot_hidden_workflow > States Tab > hidden > Permissions Tab
  1. Check Anoynmous for the View row, click save changes.
  2. Go back to ZMI > portal_workflow, go to bottom of screen and click Update Security Settings.
  3. You should be able to view the domain/plone/.../signupobject/guest

 

  • Go to ZMI > portal_workflow > Contents Tab > uwosh_timeslot_person_workflow > States Tab > waiting> Permissions Tab
  1. Check all the Anoynmous boxes, click save changes. (See Note below)
  2. Go back to ZMI > portal_workflow, go to bottom of screen and click Update Security Settings.

Note: You only need to give full access if you want the Guest to automatically Signin and not end up on the waiting list.  This part can be tinkered with to what you think your security settings should be for a guest.

 

Step 3 - Customize the new guest view

 

Step 4 - Setup the controller

  • We need to send this data to a controller.
  • Go to ZMI > portal_skins > custom
  • Add a Script (Python)
  • Add appropriate Proxy Roles
  • Go ahead and setup your controller.

 

That's really it.  As I stated earlier this is a proof of concept.  You can adjust your security and permissions to your needs.

Navigation