Skip to content
Snippets Groups Projects
Commit 4ef8a271 authored by Remco Tukker's avatar Remco Tukker
Browse files

fix bugs in user list

parent b201ce67
No related branches found
No related tags found
1 merge request!51Feature/add react router to survey
...@@ -6,6 +6,7 @@ from datetime import datetime ...@@ -6,6 +6,7 @@ from datetime import datetime
from enum import Enum from enum import Enum
from uuid import UUID, uuid4 from uuid import UUID, uuid4
from typing import List
from typing_extensions import Annotated from typing_extensions import Annotated
from sqlalchemy import Table, Column from sqlalchemy import Table, Column
...@@ -62,7 +63,7 @@ class User(UserMixin, db.Model): ...@@ -62,7 +63,7 @@ class User(UserMixin, db.Model):
created_at: Mapped[_datetime] created_at: Mapped[_datetime]
last_login: Mapped[_datetime] last_login: Mapped[_datetime]
nrens: Mapped[NREN] = relationship(secondary=UserNrenMember, lazy='joined') nrens: Mapped[List[NREN]] = relationship(secondary=UserNrenMember, lazy='joined')
def __repr__(self): def __repr__(self):
return '<User %r>' % self.email return '<User %r>' % self.email
......
...@@ -66,12 +66,13 @@ def all_users_view() -> Any: ...@@ -66,12 +66,13 @@ def all_users_view() -> Any:
def _extract_data(entry: User): def _extract_data(entry: User):
return { return {
'id': entry.id,
'email': entry.email, 'email': entry.email,
'roles': entry.roles.value, 'roles': entry.roles.value,
'active': entry.active, 'active': entry.active,
'nrens': [nren.name for nren in entry.nrens] if entry.nrens else [] 'nrens': [nren.name for nren in entry.nrens]
} }
entries = [_extract_data(entry) for entry in db.session.scalars( entries = [_extract_data(entry) for entry in db.session.scalars(
select(User).order_by(User.email))] select(User).order_by(User.email)).unique()]
return jsonify(entries) return jsonify(entries)
This diff is collapsed.
...@@ -13,8 +13,9 @@ async function fetchUsers(): Promise<User[]> { ...@@ -13,8 +13,9 @@ async function fetchUsers(): Promise<User[]> {
} }
interface User { interface User {
id: string,
email: string, email: string,
role: string, roles: string,
active: boolean, active: boolean,
nrens: string[] nrens: string[]
} }
...@@ -33,8 +34,8 @@ function UserManagementComponent() { ...@@ -33,8 +34,8 @@ function UserManagementComponent() {
<div> <div>
<table> <table>
{users.map(user => ( {users.map(user => (
<tr key={user.email}> <tr key={user.id}>
{user.email} - {user.active} - {user.role} - {user.nrens.join()} {user.id} - {user.email} - {user.active ? 'active' : 'inactive'} - {user.roles} - {user.nrens.join()}
</tr> </tr>
))} ))}
</table> </table>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment