Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stats: Number of unit admins #1419

Merged
merged 11 commits into from
May 30, 2023
Merged
1 change: 1 addition & 0 deletions SPRINTLOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -245,3 +245,4 @@ _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 number of Unit Admins ([#1419](https://github.com/ScilifelabDataCentre/dds_web/pull/1419))
5 changes: 5 additions & 0 deletions dds_web/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -695,15 +695,20 @@ 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()

# 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,
)
Expand Down
3 changes: 2 additions & 1 deletion dds_web/database/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1080,6 +1080,7 @@ class Reporting(db.Model):
date = db.Column(db.DateTime(), unique=True, nullable=False, default=datetime.date.today)
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_personnel_count = db.Column(db.Integer, unique=False, nullable=True)
i-oden marked this conversation as resolved.
Show resolved Hide resolved
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)
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 = "879b99e7f212"
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 @@ -440,10 +440,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,
]
)

# Verify that there are no reporting rows
Expand Down