Dev - Callsheet Overview

Goal: to create a 'Callsheet Generator' application that allows registered members to log into their account, navigate to a link at and click a 'create callsheet' button.

Callsheet Generator process starts at the main 'Callsheets' page from the link in the main nav. 

A. Database, Visitors and Registered Users  

  • Database will remain as the Core Drupal 7 mysql for now. If any of the following descriptions are concern for database speed, we should discuss. 
  • Anonymous Visitors can not generate callsheets, they cannot edit callsheets and they cannont view private data from callsheets.
    • They can view public published callsheets but not private published.
  • Registered Users are called Members and can create callsheets when logged in. They can only create Standard and Pro callsheets with Paid Access status.
    • They can view public published callsheets and callsheets where they are creator or a member of the Callsheet(group). 
    • They cannot view private published callsheets unless they are the creator or member of the Callsheet(group).
  • People who are not registered members but have been added to callsheets by others have a 'ghost account' created.
    • These 'ghost' accounts are in the database so information is available to autocomplete-callback
      • If 'ghost account' has hours, and crew roles recorded by any callsheets, that data will be avail to new member upon registration
  • Public published callsheets will have header info available in public feeds
    • Public Callsheet data is free to create and is 'social safe' data. 
  • Private publish callsheets will not have header info available in public feeds
    • Private publishing abilities are a paid-access feature. 
    • Private callsheets will still make Crew Hours, Production Type and other 'social safe' data available to crew members.
      • Highly protective Producers or closed security jobs can secure header data and honor non-disclosure requirements
      •  Crew members still get the benefit of aquiring their hour of experience and being able to share that data without compromise of security. 

B. Callsheet Generator application components and concepts

  1. Each Callsheet created is an individual Group within the 'Group Module' system.
    • Each Group in return is an individual node in the Drupal Core.
      • Does this allow for ten of thousands of callsheets(groups) to be managable by Drupal core?
    • Group Module will separate view of 'Group' permissions from Drupal Core permissions.
      • Core Admin permissions won't be confused with Group permissions when working within admin mode of base site?
        • There is a Drupal core role called 'Group CS Creator', that permissions role is the base for the Group Module.
      • Within Group module, there are permissions roles additional to Drupal core roles.
        • There are two Group Roles so far:
          • Callsheet Creator - has ability to create, edit and delete callsheets (group/nodes)
          • Callsheet Manager - only has ability to edit nodes, cannont delete existing callsheet (group/nodes) they manage. 
  2. Each Callsheet will have a Production Type associated. Production Type is the same as a Group Type within the 'Group Module'.
    • Production Type examples are: MusicVideo, Commercial, TVShow, FeatureFilm, WebEpisode, LiveEvent...etc. 
    • Selecting Production Types for a Callsheet will affect how the Departments, Crew Roles, Clients and Vendors will load into Edit Mode.
      • Example: MusicVideo has an 'Aritist' and Record Label in header. Commercial has 'Client' and Product in header.
    • On Callsheet Generator page, user selects a Production Type from dropdown list before clicking 'Create Callsheet' button
      • The production type selected will determine which type of new callsheet 'edit mode' is loaded, such as MusicVideo, Commercial etc...
  3. Each Callsheet will have a Callsheet Type associated. This limits the amount of fields visible in a callsheet seen in 'Edit Mode'
    • There are 3 types of Callsheets; Lite, Standard and Pro (Pro will be added in late 2017)
    • Selecting one of the callsheet types determines what size callsheet (and which fields to hide) when loading 'Edit Mode'
      • Example: Lite has small header area and fixed crew and vendor list sizes. Standard has larger header and customizable crew/vendor lists. 
    • Anonymous visitor clicking 'generate callsheet' cannot create callsheet and is re-directed to registration page
    • Registered Member is allowed to create a Callsheet Lite and if member has paid access status, can create a Standard or Pro Callsheet. 
  4. Callsheet 'Create' Process.
    • Main Callhseet Create page is at /callsheet/generator URL
    • All Visitors see Callsheet Create images....Anonymous visitor clicking 'Create Callsheet' is directed to 'why to register' page.
    • Reg. Member selects from a dropdown list of 'Production Type' within the image badges on the callsheet generator page.
      • Each image badge area for Callsheet Type (Lite, Standard, Pro) will have a Production Type dropdown selector.
    • After selecting Production Type, member clicks one of the 'Create Callsheet' buttons within the Callsheet Type image badge.
    • Create Callsheet function needs to be able to check the Members 'paid Creator Status' and display how many days remain if status is set to 'true'.
      • Clicking 'Create' button shows ligthbox of Pay Status and option to re-up payments. 
      • If 'paid access status' is false, Generate Mode enables a pay-portal for member to purchase 30 (without page redirect is desired)
  5. Each Callsheet will be filled-out or edited in Edit Mode.
    • People are added to the Callsheet(group) when a creator is in Edit Mode and fills in the various fields
    • Autocomplete suggests members who are registered already, autofills their Name, Email and Phone if clicked.
      • if suggests two people with same name, AJAX enabled autocomplete-callback displays email id for two of same name.
      • Probably want the first field entered to be email for individuals and then First, Last name follows for ease of data entry. 
    • Many entries in the Edit Mode will have alias options to enter and/or display an alternate ID, name or location.
      • Each of these options for alias, alternate or renaming are based on a simple A or B state to keep database entry simple. 
    • Creator can rename departments, rename crew titles and rearrange order of people within each department area
    • Creator can add additional crew members to a department when in Callsheet-'Standard' or 'Pro'. Not available for Callsheet-Lite.
    • Display controls selected in Header Edit Mode will allow creator to control how many details of the callsheet are visible in Display Mode. 
    • Last step of Header Edit Mode is to click one of the "Save Callsheet" buttons.
      • As a rule, Header must always be saved in order for the node to be created and added to the current list of users callsheets.
        • Header can be saved by itself without a crewlist of vendors attached. 
      • One option is to save current edit state and view callsheet in an incomplete status (only header or header+crew shown)
      •  Another option is to Save Callsheet and add crew, or to save callsheet and jump forward to add vendors without adding crew first. 
  6. Each Callsheet will be Shown in Display Mode
    • Each Callsheet will display as one node URL in a web template that displays Header+CrewList+Vendors (crewlist or vendors can be empty if unentered.
    • Dispaly Mode fields should be in a clickable PDF​ format for the Phone and Email to operate from browser, or mobile.


C. Callsheet GeneratorWorkflow details and URL listings for Callsheet Generator and creating a new callsheet and then returning to edit it.

  • Callsheet Generator - Create New Callsheet - Choice of three callsheet types; Lite, Standard, Pro (Pro to be added late 2017)
    • callsheet/generator
      • ​main page for selection of Callsheet type, Production type and existing company drop down + title entry (also has 'Creator Days Add' portal) 
  • Create new Callsheet URL - selections on Callsheet Generator page (production type and callsheet type) generate the following 'create' URL and Header Edit template.
    • callsheets/create/*prod-type* (eg. callsheets/create/music-video-lite)
    • Header (create new) - Edit Mode
  • After filling out header info - user clicks one of three options: 
    • ​Save Header and View Callsheet
    • Save Header and Add Crew List
  • Once user has
      • callsheets/*Title*/*Year-Mo-Dy* (e.g. callsheets/my-music-video-title/2017-06-15
  • Header - Edit Mode
  • Crew List - Edit Mode
  • Vendors - Edit Mode
  • Callsheet-Lite - Display Mode
    • Sample of Callsheet - Lite here
  • Callsheet-Standard - Display Mode

Field Detail Information

  • ​'Display Mode' of Callsheet is a clickable PDF version of each Callsheet Type after if has been created, filled out or edited.
    • Is there a module that can format our 'Display Mode' callsheets in a printable PDF format but also have clickable links for contact info?
    • Print Mode - PDF generated by clicking 'print' button on callsheet dispaly page allows for printing PDF or saving as PDF file.  


​Kristiaan is handling: Group module Structure, permissions controls, taxonomy integration, module logic and email integrations to Group module. 

  • ​'Group' Module and Group Types - naming and structure.
  • Production Type identity and how it relats to the Group Module.
  • Callsheet Type identity and how is relates to the Group Module.
  • Generate Mode of callsheets and how it relates to the Group Module.
    • Styling of Generate Mode is slated for Dusan. 
    • Pay-Portal within Generate Mode is slated for Dusan. 
  • Adding People to the Callsheet(group) via the groupl module. 
  • Inviting people to an existing callsheet via the group module. 
  • Email handling of all communications dealing with Callsheets, adding and removing people and managers added to existing callsheets. 
  • is it possible to merge two partially completed callsheets together into one more complete version? 


3. Create Member Profile layout 

  • Anonymous users will enter site at and will sign up for membership and inclusion into the ME db for inclusion in the callsheet and crew logging environment.
    • Sample of Anonymous Visitor registration page -TBD
    • Sample of Registered Member profile page - TBD 
    • Sample of Registered Member Callsheet list as searched from top level callsheet display 'View module'. - TBD

4. Create 'Views' for displaying Callsheet data such as member job roles and work-hour totals.

  • Crew role positions and various reports of hours worked can be displayed when pulled from ME db. 
  • Individual members will have listings of all jobs that have been logged in ME db on their behalf. 


CSS for any styling in this development can be added (please include comment descriptions) to the current custom stylesheet at:

dev/sites/all/themes/online/css/style.css - as found in CPanel File Manager


URL Tree for Callsheet functions listed above. Links lead to actual pages, except for 'Create' functions that are Lightbox samples. 

  • Callsheet Generator Main Page
    • Link for: ME db Registration Page - explains why Registration is required and allows for account creation
    • Link for: Callsheet comparison page - explains feature of CS-Lite and CS-Standard
    • Image Links: Create Callsheet x2 - Clicking either loads appropriate lightbox for set-up choices
      • Create Callsheet-Lite - Lightbox contains two fields and link for callsheet comparison page (instead of pay-portal)
        • Selecting Region and Prod. Type loads Callsheet-Lite Edit Mode for selections
      • Create Callsheet-Standard - Lightbox contains two fields and pay-portal at bottom for payment status display.
        • Selecting Region and Prod. Type loads Callsheet-Standard Edit Mode for selections



Modules potentially needed:

Anonymous Visitor Experience

Two badges are displayed on 'Callsheet Generator' page with explanations for making choice from two versions of callsheets: 

  • Basic Callsheet - Fixed crew size and layout - Customize '3 misc. crew' and '3 vendors' 
  • Advanced Callsheet - Customizable Crew size and Vendor List, no limit to size of crew or amount of vendors.
    • pay-portal pops up give authenticated member options for purcahse
      • pop-up has a notation that 'Anonymous Registration Requirment' is an option.
    • Revert to 'basic callsheet option is also given in pay-portal pop-up
  • Register to Create Callsheets - Button leads to registration page 
  • Anonymous doesn not see 'create' button, link for  'Anonynous Registration Requirement' page is visible for anonymous.
    • describes user must register to be able to be listed in the ME db and create callsheets to track experience.


Authenticated Member Experience

Two badges are displayed on 'Callsheet Generator' page with explanations for making choice from two versions of callsheets: 

  • Basic Callsheet - Fixed crew size and layout - Customize '3 misc. crew' and '3 vendors' 
  • Advanced Callsheet - Customizable Crew size and Vendor List, no limit to size of crew or amount of vendors.
    • pay-portal pops up give authenticated member options for purcahse
      • Clicking 'Create Callsheet' sends auth member to generate mode
        • generate mode presents callsheet list of types with brief descriptions
          • clicking choice loads a template for corresponding callsheet template
      • Revert to 'basic callsheet option is also given in pay-portal pop-up
  • Display Lists of unverified callsheets are displayed by a View for the logged in user. 
  • 'Invite Producer to callsheet' button explains you can enter a producers email address to notify them of callsheet you would like them to verify.
    • Or...if you are a producer, click generate callsheet or 'search for existing' callsheet'.


Anonyous Producer receives Email:

  • Producer is given 'header info' from anonymous callsheet and can click to view current state of callsheet from email
  • Producer is given a link in email to go to 'Producer Registration' page with explanitory text about what ME db is and how merging semi-duplicate callsheets works.
    • Page may have a reciprocal 'thank you' link to send a message to crew member that notified them of the Callsheet Generator. 
    • Page explains that a Producer that takes over a Callsheet will now own and control that CS as the Producer of the job
    • Also indicate that Producers can assign 'Maintainers' for the callsheet and that
    • Explain everyone can register in ME db for crew experience loging and for Producer to track Production Report.
    • Producer also told that they have choice to make public or private for visibility or secrecy. 
  • Anonymous Producer that receives an invite has a landing page specific to them, hence the above deliniations.



  • Merging multiple callsheets that have been generated by separate people
    • (comparison view and select correct fields for merge ? 
  • Customizing field titles or renaming existing field titles for depatment, crew position or vendor. 


Hold / Book / Release:

Callsheet Generator will have a feature added at a later date that will have checkboxes next to each crew member name for handling the hold and booking process for Producers.

Three check-boxes will lead each name line on the callsheet. One box each for Hold, Book and Release (HBR). WIth a dropdown list at the footer of callsheet, you select one option to apply to all those checked. Every box that has a check mark will have an appropriate email sent to the callsheet address (if no email is entered no email is sent to user but producer gets email list of those not notified for reference. Once emails are sent from footer drop list, the check-box array will display current HBR status. When someone is added to the Release category, their name disappears from the callsheet view, but a Producer can click a link that will display a view that shows a list of names and positions of all those released from a job (Release feature remains attached to callsheet and archived in hidden state so it doesn't report to 'Credits function).

Open Credits: