Small Committee Collaborative Website - Sign up Tables

Permalink
I found this documentation on Concrete5 for Forms: http://www.concrete5.org/documentation/developers/forms/standard-wi...

I am trying to develop a Small committee collaborative website.
The website will hopefully use a CMS to allow Committee Editors to:
1. Create content in certain specific regions or channels of the page. (several CMS allow this)
2. Create Signup Tables for events with columns or fields. Registered users will then populate their record through access to a row in a table or through a form if needed. For more detail see below.

Can Concrete5 accomplish this without addons or special programming?

Thank you for your advice and consideration. Rick

I need the following security groups:

Admin- total access

CC-Editor -authentication and login, edit certain regions of the page, adding content and signup tables (setup title and columns (fields) - This could also be a FORM that is connected to a small flatfile database.

CC-User - View committee pages, upon registration and login, can add their own row to the signup table and complete the information OR complete a FORM which adds a record to the small flat file database. Can then edit their own record.

The content region that the CC-Editors have control of, would have a "Signup" function, perhaps:

“Signups” button (or perhaps a Form that is completed)
"View Signups” button or perhaps viewing the table of data and sorting.

Selection of either of these two buttons would require login. If the person has not logged in, a login form would be presented. If the Signups button is selected, the CC-User would be able to add, edit or change data only they created or to view the data. These functions could also be included in the same view. Additionally CC-Editors should be able to expose a list of one or two fields of the table, to the general Public and to hide some columns from all CC-Users. CC-Editors should also be able to set a Confirmation Date and time, which turns off edit rights for CC-Users, and to add or change fields or column headings.

I am looking for a very simple interface, as an alternative to the buttons above, if a Simple "Table" can be presented that will be different depending on the type of "user" (Public, CC-User, CC-Editor, Admin) with appropriate functionality, that would be ideal.

Administrator
Add a Table to a document or “region”. Complete control of the table. Can delete a table.

CC-Editor
Can Add a Table to a "region". Can delete a table.
Can Edit the table name, add columns and column titles.
Can Edit the table, add rows, edit rows and delete rows.
Can Set the confirmation date/time.
Can select which columns are to be “public” view.
Can hide selected columns from CC-Users and Public view
Can export to csv file.

CC- Users
Can edit their "record", or their own row in a table.
Can Add their own row, and edit and modify the row, or even delete it,
up until the Confirmation Date/time at which time only Editors or Administrators can change the table and the records.
Can view table columns that that are not hidden from them. (if this becomes too complicated, this feature can be left out.)

Public
Can view table columns that are identified as “public”

Administrators, CC-Editors and CC-Users all have to log in and authenticate.

If you were going to develop this application, how would you go about it? Also what tools would you suggest.
How difficult would it be?

Thanks very much
Rick Gleason

fcgleason
 
frz replied on at Permalink Reply
frz
well you could probably get away with making something that handled most of this using the basic CMS, perhaps turn advanced permissions on, and then use the forms block.

The only part i see at a glance that won't let you handle is editing specific rows from the result set.

jgarcia has a data grid add-on and is working on a form add-on that might give you some more control over this stuff...

as a whole, yes this should be very doable with concrete5 without a lot of work.
fcgleason replied on at Permalink Reply
fcgleason
Thank you frz. Just so I understand better.

Are you saying that having CC-Users edit their own "rows" or "record" would be a problem?

Perhaps, since we are a small community, one less than satisfactory work around, is to give everyone who has logged in, edit rights to the entire table, so they can change only their row or record. Then further develop it to restrict edit permissions to CC-Users.

Do you think this would be easy to do?

Can we hide some of the table info from the general public?

Thanks for suggesting jgarcia, I have contacted him too.

Rick
frz replied on at Permalink Reply
frz
There is a built in form block in concrete5 that lets you create these forms on the fly and sticks data in the database. You can also use advanced permissions to open up the dashboard > reports page to specific groups or users.

What you can't do is open specific reports to specific users (easily) or let them alter the data..

Those problems would have to be solved with some custom development.
jgarcia replied on at Permalink Reply
jgarcia
Like frz said, the majority of this could be handled with the core of the CMS. The forms add-on I am working would probably be able to take care of the other needs you mentioned. It is at the moment about 90% complete. I does track the user that submits a record and lets you edit that information. I'm currently working on changes that will allow 1)The ability to edit records on the front end (currently only available from the dashboard), 2)The ability to limit a certain group of users to only one record per user, and 3)The ability to let users only edit records that they own. Seems like these features would accomplish what you are looking for.

The block will probably be available sometime in mid-December. If you need it before then perhaps we can work something out.
fcgleason replied on at Permalink Reply
fcgleason
Dear Jason,

This is great news!

If you can have it available in December that would be super. If I can help in any way please let me know. If you would like me to purchase it and beta or pre-test I can also do that. (I may be unable to resist from making some suggestions as I learn how it works.) I will try the built-in form block first.

Is your current Data addon something I should look into for my purposes or should I wait?

Right now I need to learn as much about concrete5 as I can, and to convert and improve our current website.

We have been using iframes with google docs and zoho.com spreadsheets for our signups, but these are unsecured.

Also I found an interesting Ajax Table you might like, as it might give you some good ideas: http://www.mysqlajaxtableeditor.com/...

If I were to have to use that I would have been editing PHP to get what we needed (a challenge for me, however they seem quite helpful in the forums). It was flexible and appeared to do much of what we needed.

I agree with the first three things you mention and would like to add a few others which are perhaps some later refinements:
1. Edit records on the front end.
2. Limit CC-Users to one record per sign-up table. CC-Users can add/delete their record.
3. Limit CC-Users to editing only records they own.
4. Editors can create multiple tables, name the table, columns and column titles (or fields - with various field types)
3. Editors can expose fields to "public" view and "hide" certain fields from CC-Users. Thus public site sees a short list of fields, CC-Users see more when logged in, and CC-Editors see all of the fields.
4. Editors can set a "cutoff date/time" when Users will no longer be able to edit their own records. This is the deadline for confirmation. Perhaps this is handled manually, by the CC-Editors changing the permissions for the table.
5. Date/Timestamp for each record.
6. Login identifier with each record to control editing of the record.
7. Different data types, drop down lists, boolean "X", checkboxes, text, number, etc. if possible.
5. We're going to need to have about 10-15 signup tables or forms and reports per year, for example. If this works well, it may become more like 30 of these sign-ups at any one time on the website. Here is one signup example: http://www.shyc-cc.org/Cruise2010/signup-gowest.htm... I am the Cruise Committee Chairman, and built this website over the last several years as a way to "spread the load" and "get the word out".

Thanks so much! This now clears the way for me, so I can get going in my spare time... Concrete5 all the way and JGarcia Data Addons!!


Rick Gleason, Architect

PS I'd like to add to Franz and jgarcia's KARMA, but do not know how to do it yet!