svwahl.svelte 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <div class="columns">
  2. <div class="column is-two-thirds">
  3. {#each Object.entries(schueler) as [klasse, schuelers]}
  4. <h3 class="title">{klasse}</h3>
  5. <table class="table is-striped">
  6. <thead>
  7. <tr>
  8. <th>Name</th>
  9. <th>Vorname</th>
  10. <th>Wahlstatus</th>
  11. </tr>
  12. </thead>
  13. <tbody>
  14. {#each schuelers as s,i}
  15. <tr>
  16. <td>{s.Name}</td>
  17. <td>{s.Vorname}</td>
  18. <td class:has-background-success={s.schuko||s.sprecher}>
  19. Schuko: <input checked={s.schuko} type="checkbox" on:click={()=>check_aktiv(s, 'schuko')}>
  20. Sprecher: <input checked={s.sprecher} type="checkbox" on:click={()=>check_aktiv(s, 'sprecher')}>
  21. gewählt: <input checked={s.gewaehlt} type="checkbox" on:click={()=>check_aktiv(s, 'gewaehlt')}>
  22. </td>
  23. </tr>
  24. {/each}
  25. </tbody>
  26. </table>
  27. {/each}
  28. </div>
  29. </div>
  30. <script>
  31. export let schueler, privat, einstellungen = {}
  32. const { Pool } = R('pg')
  33. const pool = new Pool({ connectionString: privat.mein_bk_db})
  34. const check_aktiv = async (s, art) => {
  35. console.log(s)
  36. const query = `INSERT INTO schueler(id, ${art}, vorname, klasse)
  37. VALUES($1, $2, $3, $4)
  38. ON CONFLICT (id) DO
  39. UPDATE SET ${art}=$2
  40. WHERE schueler.id=$1
  41. RETURNING ${art}`
  42. const values=[s.id, !s[art], s.Vorname, s.Klasse]
  43. try {
  44. const res = await pool.query(query, values)
  45. console.log(res)
  46. const data = res.rows[0]
  47. s[art] = data[art]
  48. schueler = schueler
  49. } catch(err) {
  50. console.log(err.stack)
  51. }
  52. }
  53. </script>