Skip to content

Rhaptos Software Development

Personal tools
You are here: Home » Documentation » Architecture » Component Design » Author Reordering and Role Refactoring

Author Reordering and Role Refactoring

Document Actions
Authors have requested the ability to change the order that authors are displayed on a module. They want to be able to specify a first author, second author, etc.

Motivation

This new feature has been requested by serveral authors because it is standard practice in the academic world to order authors based on their seniority and influence on a particular paper. Since our site is designed to support academic writings, we should also support an ordering scheme for authors to specify a particular order.

While changing the roles pages, we should clean up some data structures and refactor some code which will allow us to easily fix some bugs that have been in the system for years. An example is the bug that you cannot preview a module where the only author has not accepted the role request that will make them an author.

Assumptions

  • Only roles whose order is displayed matter.
  • We will only implement one ordering for all roles (because our ideas for a UI for multiple orderings are far too confusing).
  • We want to do all role changes (add, delete, order, modify) on one page

New Functionality

  • Ability to change the order of the list of authors, maintainers, and licensors:
    • New Buttons to move authors up and down the list
    • New Buttons to move authors to the top of the bottom of the list
  • Also, while we are in there:
    • Fix bug to preview modules with no accepted authors
    • On preview, show what the module will look like when commited, if all pending role changes are accepted.
    • A button show a list of users from the workgroup to add to modules
    • Choose roles before adding authors to the workgroup
    • Change collaboration accept/request page to look similar to the role page (currently X's are used with opposite meanings)

Affected Areas

Users will see:

  • The main change will be on the role tab for content (both modules and courses). This should contain all the functionality for reordering authors while maintaining abilities to add and edit author roles. This page is found at "workgroupId"/"contentId"/content_roles.
  • The Module display should show the list of authors ordered in the same order they are displayed on the /content_roles page.
  • New display of pending collaborations at the page /collaborations. Currently, we use X's to show what roles they will have after the requests take place. This could imply deletion of the role, though. this should be changed for consistency with the content_roles template.

Users will not see:

  • CollaborationManager.py needs to be altered to use a new collaboration request structure that will include whether the change is an add or delete
  • /content_roles and /collaborations need to be changed to to use the new collaboration request structure.
  • The backend scripts update_content and addPeople will have to be changed to use the new collaboration request format.
  • A new script called reorder_roles.py to alter the order of the roles.

Workflows

  • To add a user not in workgroup:
    1. Browse to the roles tab of the object. (/content_roles)
    2. Type in the users first or last name in the search box, click search.
    3. Find the desired user in the table and select which roles it should have.
    4. Click the Add button.
    5. The new user must accept the role request before the change is permanent.
  • To add a user in the workgroup:
    1. Browse to the roles tab of the object. (/content_roles)
    2. Click the "Add from Workgroup" button.
    3. Find the desired user in the table and select which roles it should have.
    4. Click the Add button.
    5. The new user must accept the role request before the change is permanent.
  • To change the order of a authors:
    1. Browse to the roles tab of the object. (/content_roles)
    2. Add any authors that are not on the content.
    3. Use the up/down/top/bottom arrows next to the authors they want to change to alter the ordering
  • To change the roles of an author:
    1. Browse to the roles tab of the object. (/content_roles)
    2. Choose the new desired roles for the author in the table next to their name.
    3. Click the "Update Roles" button.
    4. The new user must accept the role request before the change is permanent.
  • To change the order and roles of an author:
    1. Browse to the roles tab of the object. (/content_roles)
    2. Add any authors that are not on the content.
    3. Use the up/down/top/bottom arrows next to the authors they want to change to alter the ordering
    4. Choose the new desired roles for the author in the table next to their name.
    5. Click the "Update Roles" button.
    6. The new user must accept the role request before the change is permanent.
    OR
    1. Browse to the roles tab of the object. (/content_roles)
    2. Add any authors that are not on the content.
    3. Choose the new desired roles for the author in the table next to their name.
    4. Click the "Update Roles" button.
    5. Use the up/down/top/bottom arrows next to the authors they want to change to alter the ordering
    6. The new user must accept the role request before the change is permanent.
    NOT
    1. Browse to the roles tab of the object. (/content_roles)
    2. Add any authors that are not on the content.
    3. Choose the new desired roles for the author in the table next to their name.
    4. Use the up/down/top/bottom arrows next to the authors they want to change to alter the ordering
    5. Click the "Update Roles" button.
    6. The new user must accept the role request before the change is permanent.
  • Accept roles request:
    1. Log in
    2. Browse to the role request page. (/collaborations)
    3. Click the accept license checkbox.
    4. Click the accept button.

Impact

Although no changes will take place in the code, reordering authors can have impact anywhere the authors for a module are listed:

  • The display of a course/module
  • The summary of a module
  • Summaries of the repository as a whole (display by course titles - /browse_course_authors, etc)

Must have: New functionality (how it impacts the user... what is new to do/see) What part of the system it is in (new screens vs changes on existing screens) What motivated the change, what caused the change, why What other parts of the system will this impact A list of features at the level of actions a user can take Workflows - list of pages that users will use for certain functions should have: Screenshots of mockups


Last modified 2006-04-20 10:21