-
Who
-
Anshul Singhle , Sophomore Undergraduate Student at IIT Kharagpur India.
Email ID - anshul.singhle@gmail.com
IRC Nick - ana_s on #drupal , #drupal-contribute
Why do you want to do a project involving Drupal?
I have used Drupal in a past internship. The project involved creating a social website to enable users to collaborate on translating articles. I was impressed by the amount of stuff that Drupal could do without writing any code while at the same time offering an amazing amount of flexibility. Since I have a lot of free time I would like to give back to the community that has given me such an awesome tool.
Overview:
The project will create a new entity "Content Idea" that will allow content developers to brainstorm ideas in a collaborative manner. The Idea entity will be later made compatible with workfolw modules like Workbench. The project will be for Drupal 7.
Description
Background
- The basic use case for this module is idea brainstorming. Users can create short pieces on content called "ideas". Users can also tag these ideas with taxonomy terms. Additionally, users can attach files to these ideas. Also, the "Idea" entity will support some fields like a small content description along with some references. This is to enable use cases like an editor assigning ideas to writing staff. Essentially this module belongs to the "workbench" suite of modules . http://drupal.org/project/workbench However, this module will also implement certain hooks to enable compatibility with a larger number of modules.
Feature List
Courtesy tsvenson
- Create Private Content Idea - Allow roles with permission to create new content ideas.
- Create Public Content Idea - Allow roles with permission to create new public content ideas. Then an editor can create a list that writers then can pick from. When they pick an idea, they automatically becomes the owner of it.
- Reassign Own Content Idea - Allow users to reassign own content ideas to other users that has permission to do it. Also permission based.
- Reassign Any Content idea. - Reassign any content idea to any user with permission to have them. Also permission based. Great for editors in a news organization for example. It also means they will be able to browse all ideas.
- Mark a Private Content Idea as Public
- Content Brief - A field used to describe the outcome of the content. Great for editors when creating public ideas. For internal use.
- Resources - A field where resources can be listed, such as sources. For internal use.
- Attachments - Attaching media to the content idea.
- Integration with external modules - This will be achieved by implementing hooks that allow retrieval of Ideas and Idea Permissions. See implementation for more details
- Support for Views - Working with the Entity project people to add full support for views. http://drupal.org/node/1077148
- Convert to real content type
Be able to convert the content idea to a real content type the user has permission to create. All fields, including comment/resources we be available to the user. The user can then choose to include whatever they want in the new "real" content. Note that automatic conversion is not taking place, rather a new node is being created with content imported from the idea entity. The user can then choose to either discard the idea or keep it under circulation.
A permission for "Convert to content" type is needed here.
Implementation
Idea will be an Entity. Ownership and concept of Public/private along with permissions will be implemented with the help of Entity API.
Media embedding will be possible with the help of the Media module http://drupal.org/project/media.
Content Brief, Attachments and Resources will be fields.
Views Integration - This will again use the Views Integration provided by Entity module. Basic views like "view idea by user " will be provided by default.
Integration with other modules -
1. Workbench Access - Currently the workbench access modules works only with node. I will patch it so that it supports "Idea" Entity as well. It involves an implementation of hook_entity_access similar to the hook_node_access already implemented in Workbench access.
2.Integrate with Workbench - Stand alone, the module should use the UI layout of the Workbench module.
If the Workbench module is enabled, users can access everything from there. List pages should also be showing a trimmed version of the content brief field to give the user more info. If time allows, clicking on a content item will open a overlay with the full details.
-
Schedule
-
Till May 23 - Reading the existing Workbench code, interacting with community , Reading about Entity and Fields API. Also working on the implementation details to create a consolidated implementation plan.
May 23 - June 7th - Initial implementation of Entities and Fields. Also implementing basic functionality including Permissions and transfer of ownership etc.
June 7th - June 21st - Integration with Workbench + Implementing the Standalone UI
June 21st to July 7th - Implementation of File attachment and embedding
July 7th - July 21st - Implementation of Views.
rest - Testing + Documentation -
Mentors
-
agentrickard
Also see the discussion already done on this project at : http://groups.drupal.org/node/135594
P.S. - This is a first Draft. Any suggestions , feature requests , tips would be welcome and appreciated.