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. university-of-denver/du\_policies

ActiveDrupal-custom-module-package

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

Package of Policy Related Features

10.26.2(4mo ago)0178↑66.7%[2 PRs](https://github.com/DU-University-Relations/du_policies/pulls)GPL-2.0+Twig

Since Nov 14Pushed 1mo 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 today

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

39

↑

LowBetter than 87% of packages

Maintenance86

Actively maintained with recent releases

Popularity14

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 88.9% 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

97d 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 (5 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

[composer/installers

A multi-framework Composer library installer

1.4k133.5M5.5k](/packages/composer-installers)[drupal/console

The Drupal CLI. A tool to generate boilerplate code, interact with and debug Drupal.

93615.1M149](/packages/drupal-console)[drupal/drupal-extension

Drupal extension for Behat

21214.9M139](/packages/drupal-drupal-extension)[drupal/core-composer-scaffold

A flexible Composer project scaffold builder.

5340.9M378](/packages/drupal-core-composer-scaffold)[palantirnet/drupal-rector

Instant fixes for your Drupal code by using Rector.

1534.0M17](/packages/palantirnet-drupal-rector)[drupal/drupal-driver

A collection of reusable Drupal drivers

6715.6M17](/packages/drupal-drupal-driver)

PHPackages © 2026

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