Skip to content
Snippets Groups Projects
Commit 61ba50a3 authored by Bjarke Madsen's avatar Bjarke Madsen
Browse files

COMP-291 fix nren select box

parent a4dd583a
No related branches found
No related tags found
No related merge requests found
...@@ -60,6 +60,9 @@ class NREN(db.Model): ...@@ -60,6 +60,9 @@ class NREN(db.Model):
name: Mapped[str128] name: Mapped[str128]
country: Mapped[str128] country: Mapped[str128]
def __repr__(self):
return f'<NREN {self.id} | {self.name}>'
class BudgetEntry(db.Model): class BudgetEntry(db.Model):
__tablename__ = 'budgets' __tablename__ = 'budgets'
......
...@@ -137,6 +137,7 @@ def update_user_view(user_id) -> Any: ...@@ -137,6 +137,7 @@ def update_user_view(user_id) -> Any:
new_role = ROLES(new_role) new_role = ROLES(new_role)
except ValueError: except ValueError:
return jsonify({'success': False, 'message': 'Invalid role.'}), 400 return jsonify({'success': False, 'message': 'Invalid role.'}), 400
logger.info(f'Updating role for user {user.id} from {user.roles} to {new_role}')
user.roles = new_role user.roles = new_role
elif 'active' in update_data: elif 'active' in update_data:
...@@ -146,11 +147,13 @@ def update_user_view(user_id) -> Any: ...@@ -146,11 +147,13 @@ def update_user_view(user_id) -> Any:
return jsonify({'success': False, 'message': 'Cannot deactivate yourself.'}), 400 return jsonify({'success': False, 'message': 'Cannot deactivate yourself.'}), 400
user.active = _active user.active = _active
logger.info(f'Updating active status for user {user.id} to {_active}')
elif 'nren' in update_data: elif 'nren' in update_data:
new_nrens = None new_nrens = None
try: try:
new_nrens = db.session.scalars(select(NREN).filter(NREN.id == update_data['nren'])).all() new_nrens = db.session.scalars(select(NREN).filter(NREN.id == update_data['nren'])).all()
logger.info(f'Updating NRENs for user {user.id} to {new_nrens}')
user.nrens = [nren for nren in new_nrens] user.nrens = [nren for nren in new_nrens]
except Exception: except Exception:
return jsonify({'success': False, 'message': 'No valid NREN IDs provided.'}), 400 return jsonify({'success': False, 'message': 'No valid NREN IDs provided.'}), 400
......
This diff is collapsed.
...@@ -86,6 +86,10 @@ function UserManagementComponent() { ...@@ -86,6 +86,10 @@ function UserManagementComponent() {
}) })
}, []); }, []);
useEffect(() => {
setSortedUsers([...users.sort(defaultSortFunction)])
}, [users])
const handleInputChange = (event: React.ChangeEvent<HTMLInputElement | HTMLSelectElement>, user: User) => { const handleInputChange = (event: React.ChangeEvent<HTMLInputElement | HTMLSelectElement>, user: User) => {
const index = users.findIndex((u) => u.id === user.id); const index = users.findIndex((u) => u.id === user.id);
const updatedUsers = [...users]; const updatedUsers = [...users];
...@@ -108,7 +112,7 @@ function UserManagementComponent() { ...@@ -108,7 +112,7 @@ function UserManagementComponent() {
}); });
}; };
const findNren = (value) => { const findNrenId = (value) => {
return nrens.find((nren) => { return nrens.find((nren) => {
return nren.id == value || nren.name == value return nren.id == value || nren.name == value
})?.id })?.id
...@@ -248,13 +252,13 @@ function UserManagementComponent() { ...@@ -248,13 +252,13 @@ function UserManagementComponent() {
<select <select
name="nren" name="nren"
multiple={false} multiple={false}
defaultValue={user.nrens.length > 0 ? findNren(user.nrens[0]) : undefined} value={user.nrens.length > 0 ? findNrenId(user.nrens[0]) : ""}
onChange={(event) => handleInputChange(event, user)}> onChange={(event) => handleInputChange(event, user)}>
<option> <option value="">
Select NREN Select NREN
</option> </option>
{nrens.map((nren) => ( {nrens.map((nren) => (
<option key={nren.id} value={nren.id}> <option key={'nren_' + nren.id} value={nren.id}>
{nren.name} {nren.name}
</option> </option>
))} ))}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment