The PI Compilation module is a custom Drupal 10 module designed to manage projects, invitation lists, and registration lists. It provides functionality for uploading project CSVs, creating and modifying invitation lists, and managing registration lists.
To access functionality, please access the content tab and look for the links prefixed with PIMM_
- Project Management
- Upload project CSVs
- Manually add projects
- View and manage existing projects
- Invitation List Management
- Create invitation lists
- Export invitation lists
- Manually add users to invitation lists
- Registration List Management
- Create registration lists
- View and sort registration lists
- Export registrant emails
- Download the module and place it in your Drupal installation's
modules/custom
directory. - Enable the module through the Drupal admin interface (preferred) or using Drush (I have never tried): drush en pi_comp
- Navigate to Content > Manage Projects
- Use the CSV import form to upload a CSV file containing project data
- Select the appropriate delimiter and click "Import"
The module supports two CSV formats for project import:
Format 1: AwardNumber,Title,NSFOrganization,Program(s),EndDate,PrincipalInvestigator,PIEmailAddress,Co-PIName(s),Abstract (NSF Award Search Format)
Format 2: title,field_project_lead_pi,field_project_performance_period,Award Number
- Navigate to Content > Manage Projects
- Use the "New Project" form to manually enter project details
- Click "Create Project" to save the new project
- Navigate to Content > Manage Invitee Lists
- Select projects from the table
- Click "Match Selected Projects"
- Review matched and unmatched PIs
- Choose to create new users or match to existing users for unmatched PIs
- Enter an Invitee List Name and click "Create Selected Users"
Invitation List Structure:
- Title
- List of user references (field_users)
- Navigate to Content > Manage Invitee Lists
- Use the "Export Invitee List" form to select an invitation list
- Click "Export CSV" to download the list
- Navigate to Content > Manage Invitee Lists
- Use the "Manually Add Users to Invitee List" form
- Select an invitation list and enter usernames
- Click "Add Users to Invitee List"
- Navigate to Content > Manage Registrants
- Select an invitation list and webforms
- Enter a title for the registration list
- Click "Submit" to create the registration list
Registration List Structure:
- Title
- Reference to Invitee List (field_inviteelist)
- List of user references (field_regusers)
- List of webform references (field_regwebforms)
- Navigate to Content > Manage Registrants
- Select a registration list to view
- Use the sorting form to organize data by webform and field
- View a registration list
- Click the "Export Emails" button to download a CSV of registrant email addresses
pi_comp.info.yml
: Module definition filepi_comp.libraries.yml
: Defines JavaScript and CSS assetspi_comp.links.menu.yml
: Defines admin menu linkspi_comp.routing.yml
: Defines routes for the module's pages and formspi_comp.services.yml
: Defines services used by the modulesrc/
: Contains PHP class files for forms, controllers, and servicesjs/
: Contains JavaScript files for enhanced functionalitycss/
: Contains CSS files for styling
To customize the module's functionality:
- Modify form classes in
src/Form/
to change form fields or behavior - Adjust controller classes in
src/Controller/
to modify page output - Update route definitions in
pi_comp.routing.yml
to change URLs or access permissions - Modify service definitions in
pi_comp.services.yml
to alter module services - Customize JavaScript behavior in
js/
files - Adjust styling in
css/
files
- If CSV imports fail, check that the CSV format matches one of the expected structures
- For user matching issues, ensure that usernames in the system match the format expected by the module
- If registration lists are empty, verify that users have submitted the selected webforms
- Check Drupal logs for any error messages or warnings related to the module
This module requires:
- Drupal Core 9.4 or higher
- Entity API
- Webform module
Ensure these dependencies are met before enabling the module.
Contributions to the PI Compilation module are welcome. Please submit issues and pull requests to the module's repository.