From 62f8d28c73eb042edf9c31127f4c87f1f9e6ac4c Mon Sep 17 00:00:00 2001
From: alex <alex@alexloehr.net>
Date: Wed, 04 Jun 2025 18:30:05 +0000
Subject: [PATCH] adding user teilnahmen

---
 lib/db.js                    |   12 +++--
 app.js                       |    9 ++--
 vue/src/pages/UserDetail.vue |   65 ++++++++++++++++----------------
 3 files changed, 44 insertions(+), 42 deletions(-)

diff --git a/app.js b/app.js
index 9110702..cc1bd5b 100644
--- a/app.js
+++ b/app.js
@@ -66,11 +66,12 @@
       }
    })
    .get("/api/user/teilnahmen/:userId", async function (req, res) {
-      const {userid} = req.params
-      if(!userid || isNaN(Number(userid))) {
-         return res.code(500).send({status: "error", msg: "userid error"})
+      let userId = req.params.userId
+      console.log(`--------${userId}-----------`, typeof userId)
+      if(!userId || isNaN(Number(userId))) {
+         return res.code(500).send({status: "error", msg: "userId error"})
       }
-      const tn = await db.getUserTeilnahmen(userid)
+      const tn = await db.getUserTeilnahmen(userId)
       if (tn) {
          return res.send(tn)
       }
diff --git a/lib/db.js b/lib/db.js
index a4708f5..af7a8e6 100644
--- a/lib/db.js
+++ b/lib/db.js
@@ -266,15 +266,17 @@
 
 async function getUserTeilnahmen (usr_id) {
    const pool = await poolP
-   const q = `SELECT om.obj_id, om.usr_id, od.title, ulm.status, om.passed, ulm.status_changed
-              FROM ilias_globusfachtest.obj_members om
-                       INNER JOIN ilias_globusfachtest.usr_data ud ON ud.usr_id = om.usr_id
-                       INNER JOIN ilias_globusfachtest.object_data od ON od.obj_id = om.obj_id
-                       LEFT JOIN ilias_globusfachtest.ut_lp_marks ulm
+   const q = `SELECT om.obj_id, or2.ref_id , om.usr_id, od.title , ulm.status, om.passed, ulm.status_changed
+              FROM ${database}.obj_members om
+                       INNER JOIN ${database}.object_reference or2 ON or2.obj_id = om.obj_id
+                       INNER JOIN ${database}.usr_data ud ON ud.usr_id = om.usr_id
+                       INNER JOIN ${database}.object_data od ON od.obj_id = om.obj_id
+                       LEFT JOIN ${database}.ut_lp_marks ulm
                                  ON ulm.usr_id = om.usr_id AND ulm.obj_id = om.obj_id
               WHERE om.usr_id = ${usr_id}
                 AND om.member = 1
    `
+   console.log(q)
    const [results] = await pool.query(q)
    return results
 }
diff --git a/vue/src/pages/UserDetail.vue b/vue/src/pages/UserDetail.vue
index cc559f1..28e3cb1 100644
--- a/vue/src/pages/UserDetail.vue
+++ b/vue/src/pages/UserDetail.vue
@@ -2,7 +2,7 @@
 
 import {useRoute} from 'vue-router'
 import {onMounted, reactive, ref} from "vue"
-import {getUser, getUserTeilnahmen, iliasBase} from "../lib/api"
+import {getUser, getUserTeilnahmen, iliasBase, routerBase} from "@/lib/api"
 import LinkExtern from "../components/LinkExtern.vue"
 
 const route = useRoute()
@@ -21,6 +21,7 @@
    console.log(data)
    user.value = data
 
+   console.log(3333)
    const tn = await getUserTeilnahmen(userId)
    console.log(tn)
    teilnahmen.value = tn
@@ -76,39 +77,37 @@
 
       </div>
 
-      <!--      <table v-if="user">-->
-      <!--         <tbody>-->
-      <!--            <tr>-->
-      <!--               <td>user_id</td>-->
-      <!--               <td>{{user.usr_id}}</td>-->
-      <!--               <td>login</td>-->
-      <!--               <td>{{user.login}}</td>-->
-      <!--            </tr>-->
-      <!--            <tr>-->
-      <!--               <td>firstname</td>-->
-      <!--               <td>{{user.firstname}}</td>-->
-      <!--               <td>lastname</td>-->
-      <!--               <td>{{user.lastname}}</td>-->
-      <!--            </tr>-->
-      <!--            <tr>-->
-      <!--               <td>usr_id</td>-->
-      <!--               <td>{{user.usr_id}}</td>-->
-      <!--            </tr>-->
-      <!--            <tr>-->
-      <!--               <td>usr_id</td>-->
-      <!--               <td>{{user.usr_id}}</td>-->
-      <!--            </tr>-->
-      <!--            <tr>-->
-      <!--               <td>usr_id</td>-->
-      <!--               <td>{{user.usr_id}}</td>-->
-      <!--            </tr>-->
-      <!--            <tr>-->
-      <!--               <td>usr_id</td>-->
-      <!--               <td>{{user.usr_id}}</td>-->
-      <!--            </tr>-->
+      <h2>Teilnahmen</h2>
+      <table>
+         <thead>
+            <tr>
+               <th>obj_id</th>
+               <th>ref_id</th>
+               <th>usr_id</th>
+               <th>title</th>
+               <th>passed</th>
+               <th>status</th>
+               <th>status_changed</th>
+            </tr>
+         </thead>
+         <tbody>
+            <tr v-for="tn in teilnahmen">
+               <td>{{tn.obj_id}}</td>
+               <td>
+                  <RouterLink :to="`${routerBase}/ui/kurs/${tn.ref_id}`">
+                     {{tn.ref_id}}
+                  </RouterLink>
+               </td>
+               <td>{{tn.usr_id}}</td>
+               <td>{{tn.title}}</td>
+               <td>{{tn.passed}}</td>
+               <td>{{tn.status}}</td>
+               <td>{{tn.status_changed}}</td>
+            </tr>
+         </tbody>
+      </table>
 
-      <!--         </tbody>-->
-      <!--      </table>-->
+<!--      <pre>{{teilnahmen}}</pre>-->
 
    </div>
 

--
Gitblit v1.8.0