Skip to content

Commit

Permalink
Merge pull request #1419 from ScilifelabDataCentre/DDS-1551-stats-num…
Browse files Browse the repository at this point in the history
…ber-of-unit-admins

Stats: Number of unit admins
  • Loading branch information
i-oden authored May 30, 2023
2 parents 4419529 + 57daf8f commit 0a44a39
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 4 deletions.
6 changes: 4 additions & 2 deletions SPRINTLOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -244,5 +244,7 @@ _Nothing merged in CLI during this sprint_

# 2023-05-26 - 2023-06-09

- Command: Save number of Unit Personnel instead of total number of unit users ([#1417](https://github.com/ScilifelabDataCentre/dds_web/pull/1417))
- Command: Save total number of projects ([#1418](https://github.com/ScilifelabDataCentre/dds_web/pull/1418))
- Command:
- Save number of Unit Personnel instead of total number of unit users ([#1417](https://github.com/ScilifelabDataCentre/dds_web/pull/1417))
- Save total number of projects ([#1418](https://github.com/ScilifelabDataCentre/dds_web/pull/1418))
- Save number of Unit Admins ([#1419](https://github.com/ScilifelabDataCentre/dds_web/pull/1419))
7 changes: 7 additions & 0 deletions dds_web/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -703,16 +703,23 @@ def collect_stats():

# New reporting row - numbers are automatically set
try:
# User stats
unit_count = Unit.query.count()
researchuser_count = ResearchUser.query.count()
unit_personnel_count = UnitUser.query.filter_by(is_admin=False).count()
unit_admin_count = UnitUser.query.filter_by(is_admin=True).count()
superadmin_count = SuperAdmin.query.count()
total_user_count = User.query.count()

# Project count
total_project_count = Project.query.count()

# Add to database
new_reporting_row = Reporting(
unit_count=unit_count,
researchuser_count=researchuser_count,
unit_personnel_count=unit_personnel_count,
unit_admin_count=unit_admin_count,
superadmin_count=superadmin_count,
total_user_count=total_user_count,
total_project_count=total_project_count,
Expand Down
1 change: 1 addition & 0 deletions dds_web/database/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1081,6 +1081,7 @@ class Reporting(db.Model):
unit_count = db.Column(db.Integer, unique=False, nullable=False)
researchuser_count = db.Column(db.Integer, unique=False, nullable=False)
unit_personnel_count = db.Column(db.Integer, unique=False, nullable=False)
unit_admin_count = db.Column(db.Integer, unique=False, nullable=True)
superadmin_count = db.Column(db.Integer, unique=False, nullable=False)
total_user_count = db.Column(db.Integer, unique=False, nullable=False)
total_project_count = db.Column(db.Integer, unique=False, nullable=True)
29 changes: 29 additions & 0 deletions migrations/versions/e07c83ed0bda_add_unit_admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
"""add_unit_admin
Revision ID: e07c83ed0bda
Revises: 879b99e7f212
Create Date: 2023-05-29 09:09:24.689422
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import mysql

# revision identifiers, used by Alembic.
revision = "e07c83ed0bda"
down_revision = "c1e908241401"
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
# Add new column
op.add_column("reporting", sa.Column("unit_admin_count", sa.Integer(), nullable=True))
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column("reporting", "unit_admin_count")
# ### end Alembic commands ###
10 changes: 8 additions & 2 deletions tests/test_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -448,10 +448,16 @@ def verify_reporting_row(row, time_date):
assert row.unit_count == Unit.query.count()
assert row.researchuser_count == ResearchUser.query.count()
assert row.unit_personnel_count == UnitUser.query.filter_by(is_admin=False).count()
assert row.unit_admin_count == UnitUser.query.filter_by(is_admin=True).count()
assert row.superadmin_count == SuperAdmin.query.count()
assert row.total_user_count == User.query.count()
assert row.total_user_count != sum(
[row.researchuser_count, row.unit_personnel_count, row.superadmin_count]
assert row.total_user_count == sum(
[
row.researchuser_count,
row.unit_personnel_count,
row.unit_admin_count,
row.superadmin_count,
]
)
assert row.total_project_count == Project.query.count()

Expand Down

0 comments on commit 0a44a39

Please sign in to comment.