Closed (fixed)
Project:
Conference Organizing Distribution Support Modules
Version:
7.x-1.x-dev
Component:
cod_session
Priority:
Normal
Category:
Feature request
Assigned:
Unassigned
Reporter:
Created:
3 Oct 2010 at 17:47 UTC
Updated:
29 Jun 2012 at 23:15 UTC
Jump to comment: Most recent file
Comments
Comment #1
brentratliff commentedI haven't used Webform 3 yet, but I like the idea of CCK. Nodes still seem the easiest to manipulate in D6 not to mention export with features. As far as using an attendee role, uc_signup only supports selling roles for the user actually performing the checkout (for now). ezra-g and I are talking about how to tackle that. We used an attendee role for Drupalcamp Altanta but users could only sign up themselves.
Comment #2
gregglesI am taking some liberties about what we may be able to in other issues to support my ideal vision for this issue :)
One of the major things I like about using webform is the grid component. If we can figure out how to do that with cck then I'd be relatively fine using cck since it has nodereference and nodereference url widget to make a really slick review experience.
Comment #3
ezra-g commentedI'm generally a fan of sticking with CCK over webform, however, that preference is based on Webform 2.x . If Webform 3 makes it much easier to generate surveys (like with Form Builder) and see results (which so far Webform makes pretty easy) I would say let's go with Webform. Nate's slides on Webform 3.x from from the PNW summit are at: http://quicksketch.org/node/5737 .
According to http://drupal.org/node/861790, we can export with results from node_save(), though that doesn't let us do diffing with Features :/.
We could also preopulate the Nodereference fiedl with the Prepopulate module.
Comment #4
coltraneI've heard there was something built for San Francisco and Copenhagen we could potentially use or at least look at.
Comment #5
shawn dearmond commentedI created the feature that was used in San Francisco and Copenhagen. Taking advantage of the Code Sprint here at BADCamp, I updated the feature to be compatible with COD. See attached zip.
This covers #1, #2, and #3 from @greggles's list above. It uses content types and cck, using fivestar.
I'm going to mark as "needs review", just because there is much to review a this point.
The most important problem that @coltrane and I discussed today is the fact that the search results pick up on the eval nodes. But there might be other node types, like room and timeslot that should probably be ignored by search too, but that's outside the scope of this issue.
Comment #6
gregglesThere probably are some other things we should be excluding from search.
There are 4 module that also exclude things from search. One is now abandoned, the remaining three are:
http://drupal.org/project/search_restrict
http://drupal.org/project/search_config
http://drupal.org/project/search_block
Let's pick one and exclude this (and timeslots) from the search.
Comment #7
gadams commentedI was testing out the COD_Eval zip posted by Shawn DeArmond and I've run in to some issues.
I have met all the dependencies required for the module to be turned on; I've attached the creation of a session evaluation and the error message that follows it.
Steps that I followed:
Download and Install COD Alpha v2
Create rooms, timeslots, users and sessions.
Install COD_Eval zip posted above
Enable COD_Eval
Create COD_Eval Content (Screen 1)
Receive Error Messages (Screen 2 after pressing save)
After review of Content list I have content types created even with error messages (Screen 3)
Comment #8
shawn dearmond commented@Captain_Intern, thanks for your review!
I followed your steps exactly, but I did not experience the same issues as you describe. I tried doing the steps in different orders, such as enabling cod_eval before creating content, and still I couldn't replicate the issues.
I'm going to mark this back to "needs review" so that others can review it as well, and see if we can figure out where those issues come from.
Comment #9
garpy commentedI wasn't able to get result in #7. Once I completed all the creations I took the survey and it worked as expected. I did not follow the order of operation correctly though. I enabled the module "cod_eval-6.x-1.0-alpha2.zip" prior to creating content.
I used: cod_eval-6.x-1.0alpha2.zip, devel-6.x-1.22.tar.gz, fivestar-6.x-1.19.tar.gz, votingapi-6.x-2.1.tar.gz
Comment #10
ezra-g commentedI will be testing this feature this week. Thanks!
Here's a summary of the CCK vs Webform discussion above, along with my own thoughts about webform:
Key benefits of webform are:
a) The automatic summarization of results
b) The grid component that presents multiple choice questions in an
easy to read manner
c) They are relatively easy to build and configure with automatic mailing
The main drawbacks to Webform that we've mentioned are:
e) We haven't tested session-specific evaluations with webform 3.x's
dynamically populated value field; we know this works with CCK &
Prepopulate
f) It doesn't have exportables/Features support. However, if there is
a particular set of questions in a webform that we'd want to re-use
for a future event, we could manually put those into code and have
them created via node_save() when a new site is spun up.
With this technique, you still spare yourself the configuration when
creating a new site, but you lose the ability to diff your
configuration against the COD default. Diffing may not be a priority
for many sites, especially when different sites are likely to have
different survey questions anyway.
We could package a standard set of survey questions for different types of events separately if we wanted.
The main benefits of CCK are:
g) It is fully exportable
h) It introduces one less API (the webform API) to troubleshoot in the
case of bugs
i) we know prepopulate works for session specific rating.
The drawbacks are mainly that it lacks the benefits that make webform unique.
My sense is that for at least the summary & easy exporitng or results, we should still consider webform and investigate the prepopulation options. I feel like the diffing/exportable support is less important, if node_save is in fact reliable.
I will test the feature attached here and investigate those points about webform over the next week.
Comment #11
mfer commentedsubscribe
Comment #12
brentratliff commentedI just wrapped up my first (unrelated) project with Webform 3.x and I'm impressed. The php eval is removed so it's not saved to the db but the new hooks allow you to evaluate in a custom module or existing cod feature pretty easily. If we wanted to prepackage a set of questions I wonder if Webform 3.x + UUID Features would work. I have not used UUID Features but was just starting to research it. If not then maybe ezra-g's idea would be better:
I guess what I'm trying to say, is I may be more inclined towards webform now possibly. I'm thinking that for a non-technical conference organizer, webform is a lot easier to create surveys and customize than CCK and we can offer tweaks through the new webform hooks. It may be a more out-of-the-box solution that we're looking for in a distro even if it's not quite as powerful.
Comment #13
ezra-g commentedThe CCK solution has been used at DrupalCon SF, Chicago, and possibly even Copenhagen.
greggles pointed out in IRC that a cck-based solution, and even the one in the queue here, already works, whereas building something in webform needs more work.
I think that we should go with CCK, at least for Drupal 6, since realistically, that's where the work is happening.
Comment #14
Bricks and Clicks MarketingSubscribing.
Comment #15
gregglesFor anyone else (or me in the future): Here's a query that pulls in up to 3 presenters and shows the session title, count of votes, average overall rating.
select count(distinct cte.nid), avg(field_overall_rating), n.title, n.nid, u0.name, u1.name, u2.name
FROM content_type_eval cte INNER JOIN node n on cte.field_session_nid = n.nid INNER JOIN node n2 on cte.vid = n2.vid LEFT JOIN content_field_presenters cfp0 on cte.field_session_nid = cfp0.nid AND 0 = cfp0.delta LEFT JOIN node n30 on cfp0.vid = n30.vid LEFT JOIN users u0 ON cfp0.field_presenters_uid = u0.uid LEFT JOIN content_field_presenters cfp1 on cte.field_session_nid = cfp1.nid AND 1 = cfp1.delta LEFT JOIN node n31 on cfp1.vid = n31.vid LEFT JOIN users u1 ON cfp1.field_presenters_uid = u1.uid LEFT JOIN content_field_presenters cfp2 on cte.field_session_nid = cfp2.nid AND 2 = cfp2.delta LEFT JOIN node n32 on cfp2.vid = n32.vid LEFT JOIN users u2 ON cfp2.field_presenters_uid = u2.uid group by n.title, n.nid, u0.name, u1.name, u2.name order by avg(field_overall_rating) desc;
And another that pulls in the raw votes.
select DISTINCT cte.nid, field_academiclevel_value academic, field_discussions_rating discussion, replace(field_explain_value, ',', ';') explainvalue, field_knowledgelevel_value knowledge, field_overall_rating overall, field_percentnew_value percentnew, field_speakerknowledge_rating speakerknowledge, field_speakerskills_rating speakerskills, field_useinfo_value useinfo, field_visualcontent_rating visualrating, n.title, n.nid, u0.name, u1.name, u2.name
FROM content_type_eval cte
INNER JOIN node n on cte.field_session_nid = n.nid
INNER JOIN node n2 on cte.vid = n2.vid
LEFT JOIN content_field_presenters cfp0 on cte.field_session_nid = cfp0.nid AND 0 = cfp0.delta LEFT JOIN node n30 on cfp0.vid = n30.vid LEFT JOIN users u0 ON cfp0.field_presenters_uid = u0.uid
LEFT JOIN content_field_presenters cfp1 on cte.field_session_nid = cfp1.nid AND 1 = cfp1.delta LEFT JOIN node n31 on cfp1.vid = n31.vid LEFT JOIN users u1 ON cfp1.field_presenters_uid = u1.uid
LEFT JOIN content_field_presenters cfp2 on cte.field_session_nid = cfp2.nid AND 2 = cfp2.delta LEFT JOIN node n32 on cfp2.vid = n32.vid LEFT JOIN users u2 ON cfp2.field_presenters_uid = u2.uid ORDER BY n.nid ASC limit 1;
Comment #16
drummFor speakers to see, like http://chicago2011.drupal.org/my-session-evaluations and http://london2011.drupal.org/my-session-evaluations, we used the attached view. For field access, the default field view permissions get in the way. Since field access works on a veto system, access to view those 11 fields was granted to authenticated users and the following custom code was added:
Comment #17
drummComment #18
ezra-g commentedUpdating the issue to be 7.x since this is where current development is happening as a result of #1447448: Post-session evaluations.
A lot of code in the 6.x version of this feature is devoted towards hiding surveys from people other than the submitter or session organizers, without using the node access system. Realistically, node access is the system that we should be using to hide access to fields in the node, exclude from search results, restrict visibility to the submitter.
Here's a base cod session evaluation for Drupal 7 that replaces much of the custom code from the Drupal 6 version of this feature with the Nodereference URL module and Content access modules. I think Content access makes the most sense for COD since provides relatively simple configurable access control, so it would be easy for example for some sites to allow presenters to see their feedback and for others to restrict the visibility of feedback.
My sense is that this feature is best developed as a base content type + config + dependencies, and then an optional "suggested survey questions" module that ships with COD. That way, folks can use the same architecture but retain the ability to customize their surveys (eg for DrupalCon) by building feature modules that export additional fields onto the session evaluation content type.
Comment #19
ezra-g commentedHere's a re-roll based on coltrane's work at http://drupal.org/node/1447448#comment-5742866. Changes since that issue are:
- Hides "Provide feedback on this session" link from users who have already submitted a survey for the session being viewed
- Prevents the session eval form from appearing for users who have already reviewed a given session, to avoid having someone fill in the form and then find that it fails validation
I also removed the Fivestar fields from this export and will put them in a new export.
Comment #20
ezra-g commentedCorrected the package and added cod_session as a dependency.
Comment #21
ezra-g commentedThis was used successfully at DrupalCon Denver.
I've committed this base module. Let's continue the work in followup issues. Thanks!
http://drupalcode.org/project/cod_support.git/commit/acaaad4
Comment #23
kclarkson commentedThis session evaluation has a dependency on Nodereference URL Widget.
This module does not appear to ready for D7.
If a decision is made for Entityreferences then Entityreference Prepopulate can be used.
Again with this type of thinking Organic Groups can be utilized for multi-conferences.
Comment #24
twardnw commentedNodereference_url is full D7…
http://drupal.org/project/nodereference_url
Comment #25
ezra-g commentedMarking as closed/fixed based on 24.
Comment #26
ezra-g commentedNote, I endorsed entity references module at #1658282: Evaluation of the Entityreferences Module vs References - If you'd like to update the COD Session evaluation feature to use entity references instead of nodereference_url, patches are certainly welcome - Please file a new issue :).