Metadata-Version: 2.5
Name: university-moderation
Version: 0.1.0
Summary: University Moderation: reports, cases, actions, appeals and explainable automated rules for any University content type.
Project-URL: Homepage, https://github.com/NzeStan/University
Project-URL: Documentation, https://github.com/NzeStan/University/blob/main/docs/modules/moderation.md
Project-URL: Source, https://github.com/NzeStan/University
Project-URL: Changelog, https://github.com/NzeStan/University/blob/main/CHANGELOG.md
Author-email: Ifeanyi Stanley <nnamaniifeanyi10@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: africa,appeals,django,drf,moderation,reports,trust-and-safety,university
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Django
Classifier: Framework :: Django :: 5.2
Classifier: Framework :: Django :: 6.0
Classifier: Framework :: Django :: 6.1
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: university-core<0.2,>=0.1
Provides-Extra: test
Requires-Dist: drf-spectacular>=0.27; extra == 'test'
Requires-Dist: pytest-cov>=5; extra == 'test'
Requires-Dist: pytest-django>=4.8; extra == 'test'
Requires-Dist: pytest>=8; extra == 'test'
Description-Content-Type: text/markdown

# university-moderation

Reports, moderation cases, actions, appeals and explainable automated rules for the
[University platform](https://github.com/NzeStan/University). It is an optional
*level two* module that depends only on `university-core`, and it moderates **any** content type
registered through Core content adapters (social posts, anonymous posts, accounts …) without
importing the modules that own them.

- Configurable report reasons with severities, prioritised queues, and an evidence snapshot per
  case.
- Queues and authority scoped to the content's audience: an institution's moderators see and act
  on that institution's content only.
- Actions: dismiss, warn, hide, remove, restore, restrict (time-boxed, enforced across modules
  through Core's `content.can_create` hook), suspend and ban. Everything is audited, and there's
  a conflict-of-interest guard.
- Appeals decided by a different moderator (four-eyes), with automatic reversal on overturn.
- Automated rules that are reversible, explainable and always leave the final decision to a human.
- Anonymous content is handled without exposing or storing its author.

```bash
pip install university-moderation
```

```python
INSTALLED_APPS = [..., *CORE_APPS, "university.moderation"]
```

Guide: https://github.com/NzeStan/University/blob/main/docs/modules/moderation.md
