model changes, user institution history, style changes, forgot passowrd functionality, etc.

This commit is contained in:
msinkec
2021-09-02 14:40:54 +02:00
parent 7da73f7d6a
commit 788f3bc3eb
25 changed files with 551 additions and 176 deletions

View File

@@ -47,7 +47,7 @@
<label for="telefon">Telefon:</label>
<input type="text" id="telefon" name="telefon"/>
<div class="form-text">*Po kliku na gumb “Oddaj” se bo prikazala vsebina pogodobe o odstopu avtorskih pravic. Če se z vsebino strinjate, kliknite gumb “Pošlji”, da podatke posredujete v korpus, po e-pošti pa boste prejeli svoj izvod pogodbe.</div>
<div class="form-text">*Po kliku na gumb “Oddaj” se bo prikazala vsebina pogodbe o odstopu avtorskih pravic. Če se z vsebino strinjate, kliknite gumb “Pošlji”, da podatke posredujete v korpus, po e-pošti pa boste prejeli svoj izvod pogodbe.</div>
<button id="button-submit" type="submit">Oddaj</button>
</div>

View File

@@ -5,8 +5,8 @@
<title>Admin panel - Šolar</title>
<style>
.tableFixHead {
overflow-y: auto;
height: 306px;
overflow-y: scroll;
max-height: 306px;
}
.tableFixHead thead th {
position: sticky;
@@ -24,6 +24,9 @@
th {
background: #eee;
}
h2 {
color: blue;
}
</style>
</head>
<body>
@@ -45,13 +48,13 @@
<input type="password" id="password" name="password"><br>
<input type="submit" value="Dodaj">
</form>
<!--<h3>Odstrani uporabnika</h3>
<h3>Odstrani uporabnika</h3>
<form action="/solar/deluser" method="post">
<label for="user_id">ID uporabnika:</label><br>
<input type="text" id="user_id" name="user_id"><br>
<input type="submit" value="Odstrani">
</form>-->
<h3>Seznam vseh aktivnih uporabnikov</h3>
</form>
<h3>Aktivni uporabniki</h3>
<div class="tableFixHead">
<table>
<thead>
@@ -60,6 +63,7 @@
<th>Ime in priimek</th>
<th>Email</th>
<th>ID institucije</th>
<th>Vloga v instituciji</th>
</tr>
</thead>
<tbody>
@@ -69,6 +73,7 @@
<td>{{item[0].name}}</td>
<td>{{item[0].email}}</td>
<td>{{item[1].institution}}</td>
<td>{{item[1].role}}</td>
{% endfor %}
</table>
</div>
@@ -80,11 +85,18 @@
<input type="text" id="institution_id" name="institution_id"><br>
<label for="role">Vloga v instituciji:</label>
<select name="role" id="role">
<option value="moderator">Moderator</option>
<option value="user">Uporabnik</option>
<option value="coordinator">Koordinator/-ka</option>
<option value="mentor">Mentor/-ica</option>
<option value="other">Druga vloga</option>
</select>
<input type="submit" value="Dodeli">
</form>
<h3>Odstrani uporabnika iz institucije</h3>
<form action="/solar/deluserfrominstitution" method="post">
<label for="user_id">ID uporabnika:</label>
<input type="text" id="user_id" name="user_id"><br>
<input type="submit" value="Odstrani">
</form>
<div> </div>
<h2>Institucije</h2>
<h3>Dodaj institucijo</h3>
@@ -92,7 +104,19 @@
<label for="name">Naziv:</label>
<input type="text" id="name" name="name"><br>
<label for="region">Regija:</label>
<input type="text" id="region" name="region"><br>
<select name="region" id="region">
<option value="CE">Celje</option>
<option value="GO">Nova Gorica</option>
<option value="KK">Krško</option>
<option value="KP">Koper</option>
<option value="KR">Kranj</option>
<option value="LJ">Ljubljana</option>
<option value="MB">Maribor</option>
<option value="MS">Murska Sobota</option>
<option value="NM">Novo mesto</option>
<option value="PO">Postojna</option>
<option value="SG">Slovenj Gradec</option>
</select>
<input type="submit" value="Dodaj">
</form>
<h3>Seznam vseh instituticij</h3>
@@ -115,7 +139,7 @@
{% endfor %}
</table>
</div>
<h3>Seznam uporabnikov, ki niso aktivirani</h3>
<h3>Čakajoči uporabniki</h3>
<div class="tableFixHead">
<table>
<thead>
@@ -123,14 +147,18 @@
<th>ID</th>
<th>Ime in priimek</th>
<th>Email</th>
<th>Institucija</th>
<th>Vloga v instituciji</th>
</tr>
</thead>
<tbody>
{% for item in inactive_users %}
<tr>
<td>{{item.id}}</td>
<td>{{item.name}}</td>
<td>{{item.email}}</td>
<td>{{item[0].id}}</td>
<td>{{item[0].name}}</td>
<td>{{item[0].email}}</td>
<td>{{item[1].institution}}</td>
<td>{{item[1].role}}</td>
</tr>
{% endfor %}
</table>
@@ -141,4 +169,30 @@
<input type="text" id="id" name="id"><br>
<input type="submit" value="Aktiviraj">
</form>
<h2>Zgodovina sodelovanja</h2>
<div class="tableFixHead">
<table>
<thead>
<tr>
<th>ID</th>
<th>ID uporabnika</th>
<th>ID institucije</th>
<th>Vloga</th>
<th>Šolsko leto</th>
<th>Besedilo značke</th>
</tr>
</thead>
<tbody>
{% for item in user_cooperation_history %}
<tr>
<td>{{item.id}}</td>
<td>{{item.user}}</td>
<td>{{item.institution}}</td>
<td>{{item.role}}</td>
<td>{{item.school_year}}</td>
<td>{{item.badge_text}}</td>
</tr>
{% endfor %}
</table>
</div>
</body>

View File

@@ -28,9 +28,8 @@
</div>
</div>
<button class="button-general" style="margin-top: 20px;">Pošlji povezavo za ponastavitev geslo</button>
<button class="button-general" style="margin-top: 20px;">Pošlji</button>
</form>
<a href="/solar/register" class="contract-item-button">Registracija</a>
</div>
</div>
</div>

View File

@@ -8,11 +8,17 @@
<body>
<div id="main-window">
<div id="rect1">
<div style="padding: 50px;">
<div style="padding: 25px;">
<div id="logo-container">
<img src="/static/image/logo.svg" alt="logo"/>
</div>
<h3 id="title" style="font-size: 27px; text-align: left;">Prijava - ŠOLAR</h3>
<h1 id="title">Portal za oddajanje besedil</h1>
<h2 id="subtitle">Korpus Šolar</h2>
<div class="form-text"><em>Zbiranje besedil za korpus Šolar poteka po naslednjem postopku, ki prinaša tudi točke za napredovanje.</em></div>
<h3 id="title" style="font-size: 27px; text-align: left;">Prijava</h3>
<div>
{% with messages = get_flashed_messages() %}
{% if messages %}
@@ -24,22 +30,32 @@
<form method="POST" action="/solar/login">
<div>
<div>
<input type="email" name="email" placeholder="Email" autofocus="">
<img src="/static/image/user.png" alt="user" style="float: left; width: 10%;"/>
<input type="email" name="email" placeholder="Email" autofocus=""
style="float: right; width: 85%; margin-bottom: 20px; margin-top: 10px;">
</div>
</div>
<div>
<div>
<input type="password" name="password" placeholder="Geslo">
<img src="/static/image/password.png" alt="user" style="float: left; width: 10%; margin-top: 20px;"/>
<input type="password" name="password" placeholder="Geslo"
style="float: right; width: 85%; margin-bottom: 20px; margin-top: 10px;">
</div>
</div>
<div style="display:flex; flex-direction: row; justify-content: left; align-items: center">
<label>Zapomni prijavo</label>
<input style="width: 10%;" type="checkbox">
</div>
<button class="button-general" style="margin-top: 20px;">PRIJAVA</button>
<button class="button-general" style="margin-top: 30px; margin-bottom: 20px;">PRIJAVA</button>
</form>
<a href="/solar/register" class="contract-item-button">Registracija</a>
<a href="/solar/forgotpass" class="contract-item-button">Pozabljeno geslo</a>
<a href="/solar/register" class="contract-item-button"
style="-webkit-appearance: button;
-moz-appearance: button;
appearance: button;
margin-top: 80px;
text-decoration: none;
color: #46535b;
width: 100%;"
><img src="/static/image/register.png" alt="user" style="float: left; width: 15%; margin-right: 25px;"/>
Registracija<br><div style="font-size: 11px; margin-top: 10px;">Še nimate uporabniškega računa? Registrirajte se!</div></a>
</div>
</div>
</div>

View File

@@ -5,8 +5,8 @@
<title>Upravljanje institucije - Šolar</title>
<style>
.tableFixHead {
overflow-y: auto;
height: 206px;
overflow-y: scroll;
max-height: 306px;
}
.tableFixHead thead th {
position: sticky;
@@ -24,12 +24,15 @@
th {
background: #eee;
}
h2 {
color: blue;
}
</style>
</head>
<body>
{% with messages = get_flashed_messages() %}
{% if messages %}
<div>
<div style="background: blue;">
{{ messages[0] }}
</div>
{% endif %}
@@ -76,14 +79,15 @@
</table>
</div>
<br>
<h3>Dodeli uporabnika instituciji</h3>
<h3>Dodaj uporabnika instituciji</h3>
<form action="/solar/addusertoinstitution" method="post">
<label for="user_id">ID uporabnika:</label>
<input type="text" id="user_id" name="user_id"><br>
<label for="role">Vloga v instituciji:</label>
<select name="role" id="role">
<option value="moderator">Moderator</option>
<option value="user">Uporabnik</option>
<option value="coordinator">Koordinator/-ka</option>
<option value="mentor">Mentor/-ica</option>
<option value="other">Druga vloga</option>
</select>
<input type="submit" value="Dodeli">
</form>

View File

@@ -19,12 +19,13 @@
</head>
<body>
<a href="/solar/logout">Odjavi se</a>
{% if is_institution_moderator %}
{% if is_institution_coordinator %}
<br><a href="/solar/manage-institution">Upravljaj z institucijo</a>
{% endif %}
{% if is_admin %}
<br><a href="/solar/admin">Administracijski meni</a>
{% endif %}
<br><a href="mailto:email@example.com">Pomoč</a>
<div class="bg"></div>
<div id="main-window">
<div id="rect1">
@@ -41,6 +42,13 @@
<button id="button-pogodbe" class="selection-tab-button">POGODBE</button>
</div>
{% if not institution %}
<div class="warning">Niste član nobene institucije!</div>
{% elif not institution_contract %}
<div class="warning">Pogodba s šolo še ni naložena!</div>
{% endif %}
<div id="data-confirm-notification" class="message-notification" style="display: none;">Prosimo, preverite in potrdite vnešene podatke.</div>
<label for="program">PROGRAM</label>
<select id="program" name="program">
<option value="OS" selected="selected">Osnovnošolski (OŠ)</option>
@@ -109,7 +117,8 @@
<button id="button-submit" type="submit">Oddaj</button>
</div>
<div class="dropzone-previews"></div>
<div class="dropzone-previews">
</div>
</form>
</div>
@@ -236,6 +245,7 @@ zagotovili vse potrebne informacije v skladu s predpisi o varstvu osebnih podatk
var btnPogodbe = document.getElementById("button-pogodbe");
var elemTermsPopup = document.getElementById("popup-terms");
var termsScrollbox = document.getElementById("popup-terms-text");
var dataConfirmNotification = document.getElementById("data-confirm-notification");
var scrollboxTriggered = false;
var form = document.forms["my-dropzone"];
@@ -307,6 +317,9 @@ zagotovili vse potrebne informacije v skladu s predpisi o varstvu osebnih podatk
alert("Polje za predmet ne more biti prazno!");
} else if (vrsta === "delo-v-razredu" && isEmptyOrSpaces(vrstaCustom)) {
alert("Polje za vrsto besedila ne more biti prazno!");
} else if (dataConfirmNotification.style.display == "none") {
dataConfirmNotification.style.display = "inherit";
btnSubmit.textContent = "Potrdi";
} else {
// Then make terms popup visible
btnSubmit.disabled = true;
@@ -325,6 +338,8 @@ zagotovili vse potrebne informacije v skladu s predpisi o varstvu osebnih podatk
// Clear fields and hide popup agian
btnSubmit.disabled = false;
elemTermsPopup.style.display = "none";
dataConfirmNotification.style.display = "none";
btnSubmit.textContent = "Oddaj";
form.reset();
scrollboxTriggered = false;
});

View File

@@ -7,12 +7,13 @@
</head>
<body>
<a href="/solar/logout">Odjavi se</a>
{% if is_institution_moderator %}
{% if is_institution_coordinator %}
<br><a href="/solar/manage-institution">Upravljaj z institucijo</a>
{% endif %}
{% if is_admin %}
<br><a href="/solar/admin">Administracijski meni</a>
{% endif %}
<br><a href="mailto:email@example.com">Pomoč</a>
<div class="bg"></div>
<div id="main-window">
<div id="rect1">
@@ -29,20 +30,22 @@
</div>
<div id="contract-container">
{% if contract_school %}
<div class="contract-item" style="background-color: #ccffcc;">
<div class="contract-item-icon"></div>
<div class="contract-item">
<img src="/static/image/contract.png" alt="contract" class="contract-item-icon"/>
<div class="contract-item-title">Pogodba s šolo</div>
<div class="contract-item-date">DODANO: {{contract_school.timestamp}}</div>
<a href="/solar/pogodbe/{{ contract_school.file_contract }}.pdf" class="contract-item-button">Prenesi</a>
<div class="contract-item-data">{{contract_school.original_filename}}</div>
<div class="contract-item-data">DODANO: {{contract_school.timestamp}}</div>
<a href="/solar/pogodbe-institucije/{{ contract_school.file_contract }}.pdf" class="contract-item-button">Prenesi</a>
</div>
</br>
{% endif %}
{% for item in contracts_students %}
<div class="contract-item">
<div class="contract-item-icon"></div>
<div class="contract-item-title">Pogodba o prenosu lastništva</div>
<div class="contract-item-date">DODANO: {{item.timestamp}}</div>
<a href="/solar/pogodbe/{{ item.file_contract }}.pdf" class="contract-item-button">Prenesi</a>
<img src="/static/image/contract.png" alt="contract" class="contract-item-icon"/>
<div class="contract-item-title" style="font-size: 12px;">{{item.original_filename}}</div>
<div class="contract-item-data">Pogodba o prenosu lastništva</div>
<div class="contract-item-data">DODANO: {{item.timestamp}}</div>
<a href="/solar/pogodbe-ucencistarsi/{{ item.file_contract }}.pdf" class="contract-item-button">Prenesi</a>
</div>
</br>
{% endfor %}
@@ -78,15 +81,29 @@
<div id="collaborators-container">
<div class="container-title">Sodelujoči</div>
<div style="overflow-y: auto;">
{% for item in collaborators %}
{% for collaborator in collaborators %}
<div class="collaborators-item">
<div class="collaborators-item-name">{{item.name}}</div>
<div class="collaborators-item-name">{{collaborator.name}}</div>
{% for history_item in cooperation_history %}
{% if collaborator.id == history_item.user %}
<div>{{history_item.badge_text}}</div>
{% endif %}
{% endfor %}
</div>
{% endfor %}
</div>
</div>
<div id="awards-container">
<div class="container-title">Nagrade</div>
<div class="container-title">Sodelovanje v letih</div>
<div style="overflow-y: auto; margin: auto; width: 100%; height: 200px;">
{% for item in cooperation_history %}
<div style="border-bottom: 2px solid #c4c4c4; min-height: 50px;">
<img src="/static/image/star.png" alt="star" style="float: left; width: 40px;"/>
<div class="collaborators-item-name"
style="float: right; width: 250px; margin-bottom: 20px; margin-top: 10px; text-align: left; margin-left: 20px;">{{item.badge_text}}</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>

View File

@@ -12,7 +12,12 @@
<div id="logo-container">
<img src="/static/image/logo.svg" alt="logo"/>
</div>
<h3 id="title" style="font-size: 27px; text-align: left;">Registracija - ŠOLAR</h3>
<h1 id="title">Portal za oddajanje besedil</h1>
<h2 id="subtitle">Korpus Šolar</h2>
<div class="form-text"><em>Zbiranje besedil za korpus Šolar poteka po naslednjem postopku, ki prinaša tudi točke za napredovanje.</em></div>
<h3 id="title" style="font-size: 27px; text-align: left;">Registracija</h3>
<div>
{% with messages = get_flashed_messages() %}
{% if messages %}
@@ -39,6 +44,19 @@
<input type="password" name="password" placeholder="Geslo">
</div>
</div>
<div>
<div>
<input type="institution" name="institution" placeholder="Naziv institucije" autofocus="">
</div>
</div>
<label for="role">Vloga v instituciji</label>
<select id="role" name="role" >
<option value="coordinator">Koordinator/-ka</option>
<option value="mentor">Mentor/-ica</option>
<option value="other">Druga vloga</option>
</select>
<button class="button-general" style="margin-top: 20px;">REGISTRACIJA</button>
</form>
</div>

View File

@@ -12,7 +12,7 @@
<div id="logo-container">
<img src="/static/image/logo.svg" alt="logo"/>
</div>
<h3 id="title" style="font-size: 27px; text-align: left;">Prijava - ŠOLAR</h3>
<h3 id="title" style="font-size: 27px; text-align: left;">Ponastavitev gesla - ŠOLAR</h3>
<div>
{% with messages = get_flashed_messages() %}
{% if messages %}
@@ -21,25 +21,14 @@
</div>
{% endif %}
{% endwith %}
<form method="POST" action="/solar/login">
<form method="POST" action="">
<div>
<div>
<input type="email" name="email" placeholder="Email" autofocus="">
<input type="password" name="new_password" placeholder="Novo geslo">
</div>
</div>
<div>
<div>
<input type="password" name="password" placeholder="Geslo">
</div>
</div>
<div style="display:flex; flex-direction: row; justify-content: left; align-items: center">
<label>Zapomni prijavo</label>
<input style="width: 10%;" type="checkbox">
</div>
<button class="button-general" style="margin-top: 20px;">PRIJAVA</button>
<button class="button-general" style="margin-top: 20px;">PONASTAVI</button>
</form>
<a href="/solar/register" class="contract-item-button">Registracija</a>
</div>
</div>
</div>

View File

@@ -8,12 +8,13 @@
</head>
<body>
<a href="/solar/logout">Odjavi se</a>
{% if is_institution_moderator %}
{% if is_institution_coordinator %}
<br><a href="/solar/manage-institution">Upravljaj z institucijo</a>
{% endif %}
{% if is_admin %}
<br><a href="/solar/admin">Administracijski meni</a>
{% endif %}
<br><a href="mailto:email@example.com">Pomoč</a>
<div class="bg"></div>
<div id="main-window">
<div id="rect1">
@@ -35,43 +36,45 @@
<div class="history-item-uploader">{{ uploader_names[loop.index - 1] }}</div>
<div class="history-item-filecount">Št. datotek: {{ item.upload_file_hashes|length }}</div>
<div class="history-item-desc">
[
{% set began = False %}
{% if institution_names[loop.index - 1] %}
{% if began %}|{% endif %} {{ institution_names[loop.index - 1] }}
{% if began %}, {% endif %} {{ institution_names[loop.index - 1] }}
{% set began = True %}
{% endif %}
{% if item.program %}
{% if began %}|{% endif %} {{ item.program }}
{% if began %}, {% endif %} {{ item.program }}
{% set began = True %}
{% endif %}
{% if item.subject %}
{% if began %}|{% endif %} {{ item.subject }}
{% if began %}, {% endif %} {{ item.subject }}
{% set began = True %}
{% endif %}
{% if item.subject_custom %}
{% if began %}|{% endif %} {{ item.subject_custom }}
{% if began %}, {% endif %} {{ item.subject_custom }}
{% set began = True %}
{% endif %}
{% if item.grade %}
{% if began %}|{% endif %} {{ item.grade }}
{% if began %}, {% endif %} {{ item.grade }}
{% set began = True %}
{% endif %}
{% if item.text_type %}
{% if began %}|{% endif %} {{ item.text_type }}
{% if began %}, {% endif %} {{ item.text_type }}
{% set began = True %}
{% endif %}
{% if item.text_type_custom %}
{% if began %}|{% endif %} {{ item.text_type_custom }}
{% if began %}, {% endif %} {{ item.text_type_custom }}
{% set began = True %}
{% endif %}
{% if item.school_year %}
{% if began %}|{% endif %} {{ item.school_year }}
{% if began %}, {% endif %} {{ item.school_year }}
{% set began = True %}
{% endif %}
{% if item.grammar_corrections %}
{% if began %}|{% endif %} {{ item.grammar_corrections }}
{% if began %}, {% endif %} {{ item.grammar_corrections }}
{% set began = True %}
{% endif %}
]
</div>
</div>
</br>