[Help Needed] Skill Matrix with Application Builder: Linking Skill Level to Employee-Skill Table (Self-Hosted, Advanced Plan)

Hello everyone,

I’m currently working on a skill matrix solution using Baserow (self-hosted, Advanced Plan, Docker).
My goal:
To display all skills (from the “Skills” table) for each employee and allow maintaining a skill level for each skill. These skill levels should be stored in a linking table (“Employee-Skills”) that connects employees and skills.

My current setup:

  • I have three tables:
    • Skills (list of all skills)
    • Employees
    • Employee-Skills (linking table with fields: Skill, Employee, Skill Level)
  • In the Application Builder, I created a repeating element (“Repeat”) that shows all skills.
  • For each skill, there is an input field (dropdown) to select the skill level.

My challenge:

I want to achieve that:

  • The skill level field in the repeat is linked to the linking table.
  • When changing or entering a skill level for a skill (and a selected employee),
    either a new entry is created or
    an existing entry is updated in the linking table.
  • The repeat should also display whether a skill level already exists for the current skill/employee combination.

What I have done so far:

  • The Application Builder is enabled and usable.
  • The Advanced license is applied and the container has been restarted.
  • I can create pages, repeats, and input fields.
  • However, events/actions for dropdown change are greyed out and not selectable in the Application Builder.

My questions:

  1. How can I link the skill level field in the repeat so that on change, an entry in the linking table is created or updated?
  2. How can I display in the repeat whether a value already exists for the current skill/employee combination?

I appreciate any tips, example workflows, or hints - thank you!

Best regards,
Robert

@frederikdc we would need your help here :pray:

Hi, looks like a nice project.

There are no events to update / insert records on a field change. So, you will need to make it two separate actions

  1. An action that inserts or removes a skill for an employee. Assume that you show all the employees in a repeat element, you can have a form inside with a record selector that allows to select one or more skills. But you will need to use a button to confirm.

2.Maybe you can have a repeat inside the employees repeat to show all the skills. The inner repeat element will also need to have a form with an input element to set the skill level.

hello, at the moment I have a form which shows with repeat all skills.

I have a labels the information from the skill table. The page is only logged in available (the employees should be maintain this for himself)

I have also a select for skills (not connected to anything yet.

I think I need in each repeat form a button. And then I need anyhow to catch the attributed of the related skill + employ id + select skill rate and create a new entrance right?

I created a small prototype:
Table Skills with just a name
Table Employees with just a name
Table Employee_Skills that links both and creates Link to table fields in both Skills and Employees

I’ve added a lookup field Assigned employees in the Skills table to get more information about the Employee (required in the app builder)

I created a page with 2 data source
* Skill for employee: Get all records from the Employee_Skills table where the Employe is the current user.

  • Skills not assigned: I get all the skills from the Skills table that are not assigned to the employee (that’s why I needed that username in the lookup field)

On the page I have a Repeat element for the Skill for employee data source. This element contains a button with a delete action on the Employee_Skills table and refreshes both data sources.

There is also a form that updates the level of the skill

Below the repeat element, I use a table element for the Skills not assigned data source. The table has a button element to assign the skill with a default value of 1.