Quantcast
Channel: Recent posts across whole site
Viewing all articles
Browse latest Browse all 49199

Porting COD to Drupal 7: A How-To

$
0
0

This is a high-level plan for getting a Drupal 7 release of COD. Additional issues will appear in this section, probably as a link filtering the issues to every relevant to the D7 version of COD.

Setup

Sprints

Content types and Views exports

these are simple tasks that anyone can help with

  • Have Drupal 6 COD install setup
  • Install Drupal 7 and Features, Views, CTools
  • Create content types to match the COD Support content types in Drupal 6
  • Leave out Signup, Ubercart, scheduling settings, uuid (things that would complicate export or aren't D7 ready)
  • Create news, attendees, sponsors Views
  • Create features to match the COD support features from Drupal 6
  • Export features
  • Post Features to an issue in http://drupal.org/project/cod_support

Profile

  • Port cod.profile to Drupal 7 so COD can be installed and configured easily (may need to leave out modules that don't have a D7 release yet)

Key architectural issues:

As part of the port to Drupal 7, we need to:

  • Update the Signup module (or write an equivalent module) to Drupal 7 (see below)
  • Provide integration between Signup and Drupal Commerce
  • Provide the ability for sites without E-Commerce needs to provide signups without having to enable Commerce, via 2 separate COD feature modules: One for free events and one that adds paid event support.

Updating the Signup module (or writing equivalent functionality):

Signup currently has a "straight port" in progress of the 7.x-1.x branch.
The "straight port" approach has the benefit of generally being faster to write, but the drawback of not taking advantage of the Drupal 7 Entity API for storing signups. The Drupal 7 entity API may simplify the popular feature request of adding event-specific fields to the signup form, and may also help provide better architectural compatibility with Commerce.

You can help Signup move along in Drupal 7 by reviewing the Registration module and filling patches against it to help provide feature parity with Signup for Drupal 6. See below for a list of key Signup module features that exist in Drupal 6 and should be preserved in the Drupal 7 version of Signup.

The overall meta-discussion about these modules and approaches is at http://drupal.org/node/1285384.

It would be ideal to have a single module that provides Signup functionality so that we can focus development efforts.

Main goals of a signup-type module for Drupal 7 are:
a) Integrates well with Commerce
b) Maintains feature-parity with the existing Signup and UC_Signup modules:
- As an event organizer:
-- I can send an email to everyone who is registered for a specific event
-- I can see how many people are registered for a specific event
-- I can see how many spaces remain in a specific event
-- I can manually sign up or cancel the signup of a user
Provided in Drupal 6 through the Signup status module, but should be possible with a D7 version of Signup (either in a separate module or through the Signup API)
-- I can assign different Signup statuses used to group registrants.
-- Each status can have its own signup limit for an event
-- Each status can count against the total signup limit for an event
Provided in Drupal 6 through the UC_Signup module
- As a user I can:
-- Sign up one or more users for an event
-- Enter profile field (and ideally, event-specific) information for users who have not already provided this information
-- I can create an account for users who do not already have accounts and enter necessary Signup and profile field information for them
-- See a log of all signup IDs and email addresses associated with my order
As a site administrator, I can:
- Control which user profile fields display in the paid event signup form
- Allow existing users to edit their profile information as part of the event signup form
- Customize the order confirmation email to include created Signup IDs
- See a log of all signup IDs associated with an order
User & Admin:
-- Work with purchased signups in the same way as free Signups

c) Provides event-specific fields on the event signup form (or is built in a way that this is possible to add later)

Note: Information below here may be out of date.

Dependencies/patches (last updated 2011-10-08 during LA Drupal code sprint)

Note: Unless version matters, it hasn't been mentioned here. Also, has a release means that Drush downloaded something...doesn't mean it's stable.
(D) Acquia Prosper: NO D7 RELEASE Instead, we'll be using the new http://drupal.org/project/fusion_swimmingly theme.
(D) Admin - has D7 release
(D) Auto Nodetitle - has D7 release
(D) CCK: Omitting; fields are in core now. May be re-added for an upgrade path.
(D) Comment Notify - has D7 release
(D) Context - has D7 release
(D) Chaos tools - has D7 release
(D) Strongarm: has D7 release
(D) Link: has D7 release
(D) Date: has D7 release
(D) Diff: has D7 release
(D) Checkbox Validate: BUG FIXED IN D7 CORE
(D) COD support: Duh, we're porting that ;)
(D) Emfield: NO D7 RELEASE
(D) Fasttoggle: NO D7 RELEASE
(D) Filefield: IN D7 CORE
(D) Flag: has D7 release
(D) Features: has D7 release
(D) Global redirect: has D7 release
(D) ImageAPI: has D7 release
(D) ImageField: IN D7 CORE
(D) jQuery UI: has D7 release
(D) Markdown: has D7 release
(D) Pathauto: has D7 release
(D) Path redirect: has D7 release
(D) Skinr: has D7 release
(D) Signup: has D7 release
(D) Token: has D7 release
(D) Ubercart: SWITCHING TO COMMERCE
(D) UUID: has D7 release
(D) UUID Features: has D7 release
(D) Views: has D7 release
(D) Views bulk operations: has D7 release
(D) Views Send: NO D7 RELEASE

List of modules that need to be removed from COD 7.x-dev

Checkbox Validate
FileField
ImageCache
ImageField
Path Redirect (replaced with Redirect in Drupal 7)
Signup Profile (Depending on whether equivalent functionality is included in Signup for Drupal 7
Views Send (Use Rules instead)

(P) flag (http://drupal.org/node/846826) - WAS COMMITTED TO 6.X, VERIFY IN FLAG 7.X RELEASE
(P) features - export profiles - 6.x issue was http://drupal.org/node/912716, COMMITTED IN 7.X (http://drupal.org/node/873122), VERIFY IN 7.X RELEASE
* http://drupal.org/node/968826#comment-3863422 - VERIFY STATUS
* http://drupal.org/node/1008496#comment-3995594 - VERIFY STATUS

(via @droweski) Here are some extra notes on the module dependencies of D6 COD and the D7 status - may be outdated. Info above is more up-to-date. These notes should be removed once refined.

All
C-Tools: Active dev
Features: Stable beta
Menu: Core (but changes and some bugs)
Strongarm: Early dev version
UUID: Early dev version
UUID Features: Early dev version
Views: Switch to Views 3 (sse notes)

COD Community
Signup: Early dev (ezra-g)

COD Events
Date: Alpha 3 (major changes, see notes)
Signup: Early dev (ezra-g)
UC: Switch to Drupal comerce (uses rules2: early beta)
UC Signup integration: Early dev (ezra-g)
VBO: Dev version

COD Front Page
Content Permissions: Change to Field permissions module
Context: Early beta
Date: Alpha 3 (major changes)
Fasttoggle: No D7 version
Fieldgroup: Stable module
Flag: Beta version
Link: Alpha version
Node Reference: Relation API module, early dev
Signup: Early dev (ezra-g)
User Reference: Relation API module, early dev

COD Session
Automatic Nodetitles: Stable
Content Permissions: Change to Field permissions module
Context: Early beta
Fieldgroup: Stable module
Flag: Beta version
Node Reference: Relation API module, early dev
User Reference: Relation API module, early dev

COD Sponsors
Content Permissions: Change to Field permissions module
Context: Early beta
Fasttoggle: No D7 version
User Reference: Relation API module, early dev

Others
Diff: Early port
Skinr: Unstable dev version
Global redirect: Change to Redirect module
Checkbox validate: None

Notes:
Main areas of concern as I see it:
Signup and signup-integration with commerce package: need major module re-writes, originals both built by ezra-g.
Node and user references: change to relation API module, could be some major code changes.
C-tools/Views/Date: under heavy co-dependent development and changing daily.

Tests

  • Test coverage of COD in Drupal 7 would be beneficial, even if its tests for things that don't exist yet (TDD :)
    • Tests could be of D6 features, such as creating sessions, voting, visiting pages like speaker lists, sponsors, registering etc

Views-powered schedule

cod_session.module is very much in flux for D6 The alpha3 code could be updated but the BoF code significantly alters it and is not yet committed. See issue http://drupal.org/node/1034482

When will it be released?

When it's ready.


Viewing all articles
Browse latest Browse all 49199

Trending Articles