From 3a7fd017a11de9680f8bfdafa7c804ba0fd0b8eb Mon Sep 17 00:00:00 2001
From: David Trattnig <david@subsquare.at>
Date: Thu, 12 May 2022 16:37:33 +0200
Subject: [PATCH] Feat: Generate visual data model

---
 .gitignore           |  1 +
 README.rst           | 14 ++++++++++++++
 requirements.txt     |  2 ++
 steering/settings.py |  1 +
 4 files changed, 18 insertions(+)

diff --git a/.gitignore b/.gitignore
index 3705dd8a..68db616e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,7 @@ steering/site_media/__sized__/*
 steering/cache/*
 steering/mysql.cnf
 steering/postgresql.cnf
+steering_data_model.png
 venv/
 python/
 .env
diff --git a/README.rst b/README.rst
index fab0ef9a..55d3e533 100644
--- a/README.rst
+++ b/README.rst
@@ -115,3 +115,17 @@ Finally, you can start the development server::
 
     (venv) $ ./manage.py runserver
 
+Data Model
+----------
+
+You can generate a visualization of the data model using the Django extensions.
+
+First, install GraphViz globally:
+
+    apt-get install graphviz
+
+Then, run following to generate an image out of the models:
+
+    (venv) $  manage.py graph_models --pydot -a -g -o steering_data_model.png
+
+
diff --git a/requirements.txt b/requirements.txt
index 99b8a81f..565d1ca4 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,6 +5,7 @@ charset-normalizer==2.0.12
 Django==3.2.13
 django-cors-headers==3.11.0
 django-environ==0.8.1
+django-extensions==3.1.5
 django-filter==21.1
 django-oidc-provider==0.7.0
 django-versatileimagefield==2.2
@@ -25,6 +26,7 @@ pre-commit==2.18.1
 psycopg2-binary==2.9.3
 py==1.11.0
 pycryptodomex==3.14.1
+pydotplus==2.0.2
 pyjwkest==1.4.2
 pyparsing==3.0.8
 pytest==7.1.1
diff --git a/steering/settings.py b/steering/settings.py
index 2e9cbe36..2c91e907 100644
--- a/steering/settings.py
+++ b/steering/settings.py
@@ -144,6 +144,7 @@ INSTALLED_APPS = (
     "rest_framework",
     "rest_framework_nested",
     "django_filters",
+    "django_extensions",
     "drf_spectacular",
     "oidc_provider",
     "corsheaders",
-- 
GitLab