PHPackages                             university-of-denver/du\_policies - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. university-of-denver/du\_policies

ActiveDrupal-custom-module-package[Utility &amp; Helpers](/categories/utility)

university-of-denver/du\_policies
=================================

Package of Policy Related Features

10.26.2(7mo ago)0313↑50%[1 issues](https://github.com/DU-University-Relations/du_policies/issues)[2 PRs](https://github.com/DU-University-Relations/du_policies/pulls)GPL-2.0+Twig

Since Nov 14Pushed 2mo agoCompare

[ Source](https://github.com/DU-University-Relations/du_policies)[ Packagist](https://packagist.org/packages/university-of-denver/du_policies)[ Docs](http://www.du.edu)[ RSS](/packages/university-of-denver-du-policies/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (8)Dependencies (1)Versions (11)Used By (0)

DU Policies Module
==================

[](#du-policies-module)

A Drupal custom module for managing and displaying University of Denver policy documents in PDF form.

Version
-------

[](#version)

**9.28.x** Installs following using a composer managed upstream. **10.27.0-alpha** Installs the module without any config so that it doesn't conflict existing config on du.edu. It adds the css library used from the module and incorporates and refactored policy node template. **10.26.2** - Removes the use of taxonomy to create drop-down fields, using text lists instead. Also adds twig template usage. **10.26.0** - This version is a carbon copy of the configuration harvested from DU's Drupal 9 instance.

Description
-----------

[](#description)

The DU Policies module provides a complete content type, paragraph type, views, taxonomies, and user role for managing university policy documents. It enables content editors to add, update, list, and search policy documents with structured metadata.

Entity Structure
----------------

[](#entity-structure)

```
Policy Node (node.type.policy)
├── Field: Policy Document (field_policy_document) - File upload
├── Field: Keywords (field_keywords) - Text
├── Field: Policy Approver (field_policy_approver)
├── Field: Policy Responsible Department (field_policy_responsible_departm)
├── Field: Policy State (field_policy_state)
└── Field: Updated Date (field_updated_date) - Date

Policy Paragraph (paragraphs.paragraphs_type.policy)
├── Field: Policy State (field_policy_state)
└── Renders policy view block within page content

Policy View Block (views.view.policy)
├── Displays list of policy nodes
├── Exposed filters (using Better Exposed Filters module)
└── Searchable and filterable by metadata

User Role: Policy Editor (user.role.policy_editor)
└── Permissions for managing policy content

```

Dependencies
------------

[](#dependencies)

### Drupal Module Dependencies

[](#drupal-module-dependencies)

- `views` (core)
- `better_exposed_filters` (contrib)

### Composer Dependencies

[](#composer-dependencies)

- `drupal/better_exposed_filters: ^6.0`

Installation
------------

[](#installation)

1. Ensure dependencies are installed:

    ```
    composer require drupal/better_exposed_filters
    ```
2. Enable the module:

    ```
    drush en du_policies
    ```
3. Clear cache:

    ```
    drush cr
    ```

Known Shortcomings
------------------

[](#known-shortcomings)

### Configuration Installation

[](#configuration-installation)

- **All configuration is added via the `config/install` directory.** This works well for fresh installations, but update hooks need to be implemented to safely install on sites with existing roles, paragraphs, or basic page configurations.
- The policy paragraph type must be **manually added** to the paragraph field on a basic page before it can be used.

### Template Dependencies

[](#template-dependencies)

- The policy view currently renders using Twig templates from the `pl_drupal` theme:
    - `themes/custom/pl_drupal/templates/field/field--node--field-page-content.html.twig`
- **These templates and related CSS need to be moved into the `du_policies` module** for proper encapsulation and portability.

### Testing

[](#testing)

- No automated testing has been implemented yet.

Future Enhancements
-------------------

[](#future-enhancements)

- **Playwright testing** - Add end-to-end testing coverage
- **Self-contained templates** - Move Twig templates and CSS into the module
- **Update hooks** - Add configuration update hooks for safe installation on existing sites
- **Automated paragraph field configuration** - Automatically add policy paragraph to basic page content field

Documentation
-------------

[](#documentation)

### Product History and Requirements

[](#product-history-and-requirements)

### UAT Cases

[](#uat-cases)

License
-------

[](#license)

GPL-2.0+

Maintainer
----------

[](#maintainer)

University of Denver

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance76

Regular maintenance activity

Popularity16

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 87% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~6 days

Total

5

Last Release

193d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/642d9f07988f3fcb767c14d632a9de84d745f44d9078d557cb4011220579aa88?d=identicon)[DU-Automation](/maintainers/DU-Automation)

---

Top Contributors

[![joshua-mcgehee](https://avatars.githubusercontent.com/u/166567243?v=4)](https://github.com/joshua-mcgehee "joshua-mcgehee (40 commits)")[![kreynen-du](https://avatars.githubusercontent.com/u/178853103?v=4)](https://github.com/kreynen-du "kreynen-du (6 commits)")

---

Tags

drupalUniversity of Denver

### Embed Badge

![Health badge](/badges/university-of-denver-du-policies/health.svg)

```
[![Health](https://phpackages.com/badges/university-of-denver-du-policies/health.svg)](https://phpackages.com/packages/university-of-denver-du-policies)
```

###  Alternatives

[lullabot/amp

A set of useful classes and utilities to convert html to AMP html (See https://www.ampproject.org/)

3793.0M10](/packages/lullabot-amp)[drupal/core-composer-scaffold

A flexible Composer project scaffold builder.

5344.1M526](/packages/drupal-core-composer-scaffold)[mnsami/composer-custom-directory-installer

A composer plugin, to help install packages of different types in custom paths.

1415.3M59](/packages/mnsami-composer-custom-directory-installer)[drupal/core-project-message

Adds a message after Composer installation.

2124.0M193](/packages/drupal-core-project-message)[aleksip/plugin-data-transform

Data Transform Plugin for Pattern Lab PHP

34903.0k3](/packages/aleksip-plugin-data-transform)[acquia/drupal-recommended-settings

The composer plugin for adding drupal-recommended-settings for Acquia Cloud.

111.3M5](/packages/acquia-drupal-recommended-settings)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
