15 Commits

Author SHA1 Message Date
Leon Noe Jovan
2868cf3548 fixes 2023-01-16 18:52:30 +01:00
Leon Noe Jovan
f627218e41 fixes 2023-01-16 17:52:59 +01:00
Leon Noe Jovan
8506356a13 fixes 2023-01-14 14:02:11 +01:00
Leon Noe Jovan
ce03a21ad7 fixes 2023-01-14 13:56:03 +01:00
Leon Noe Jovan
e6c87bb3f6 fixes 2023-01-14 13:45:33 +01:00
mihasinkec
10e8116d83 Added route prefix support. 2022-11-06 13:51:12 +01:00
Leon Noe Jovan
f671c365a3 reverted menu 2022-02-14 21:56:10 +01:00
Leon Noe Jovan
b19cfa6d48 added check if empty 2022-02-14 17:37:41 +01:00
msinkec
f898ee8d31 Finished manage institution site. Redone how cooperation history works. 2022-02-14 15:01:03 +01:00
Leon Noe Jovan
87f067b077 new menu, manage instutution reorganized 2022-02-13 15:47:19 +01:00
Leon Noe Jovan
e1b1d194fd new menu, manage instutution reorganized 2022-02-13 15:20:20 +01:00
Leon Noe Jovan
ab842809c7 Merge branch 'leon-redesign' of https://gitea.cjvt.si/webapps/portal-oddajanje-solar into leon-redesign 2022-02-12 16:38:37 +01:00
Leon Noe Jovan
e909ee8405 changes in history 2022-02-12 16:38:34 +01:00
msinkec
9ce19a34a7 Merge branch 'leon-redesign' of https://gitea.cjvt.si/mihasinkec/portal-oddajanje-solar into leon-redesign 2022-02-10 10:25:39 +01:00
msinkec
710abf74df endpoint permission updates for institutions, threw out add user from manage institution menu 2022-02-10 10:25:27 +01:00
44 changed files with 2439 additions and 1167 deletions

View File

@@ -13,6 +13,5 @@ WORKDIR /usr/src/portal-webapp
RUN apt-get update && apt-get -y install wkhtmltopdf && \
rm -rf /var/lib/apt/lists/*
RUN pip3 install --no-cache-dir pdfkit flask==1.1.4 flask-dropzone flask-log-request-id flask-login Flask-SQLAlchemy alembic flask-migrate==2.7.0 Flask-script psycopg2 gunicorn pdfkit Werkzeug==1.0.1 PyJWT
RUN pip3 install --no-cache-dir pdfkit markupsafe==2.0.1 flask==1.1.4 flask-dropzone flask-log-request-id flask-login Flask-SQLAlchemy==2.5.1 alembic flask-migrate==2.7.0 Flask-script psycopg2 gunicorn pdfkit Werkzeug==1.0.1 PyJWT
ENTRYPOINT ["./entrypoint.sh"]

436
app.py
View File

@@ -2,6 +2,8 @@ import logging
import os
import re
import configparser
import random
import string
from pathlib import Path
from werkzeug.security import check_password_hash
@@ -12,6 +14,10 @@ from flask_script import Manager
from flask_login import LoginManager, login_required, login_user, current_user, logout_user
from portal.model import db, RegisteredUser
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
import portal.solar
# TODO: Integrate Shibboleth login.
@@ -27,6 +33,7 @@ config.read('config.ini')
config = config['DEFAULT']
SERVER_NAME = config['SERVER_NAME']
ROUTE_PREFIX = config['ROUTE_PREFIX']
MAIL_HOST = config['MAIL_HOST']
MAIL_LOGIN = config['MAIL_LOGIN']
MAIL_PASS = config['MAIL_PASS']
@@ -50,6 +57,8 @@ if not UPLOADS_DIR.exists:
# Override configs with environment variables, if set
if 'PORTALDS4DS1_SERVER_NAME' in os.environ:
SERVER_NAME = os.environ['PORTALDS4DS1_SERVER_NAME']
if 'PORTALDS4DS1_ROUTE_PREFIX' in os.environ:
ROUTE_PREFIX = os.environ['PORTALDS4DS1_ROUTE_PREFIX']
if 'PORTALDS4DS1_MAIL_HOST' in os.environ:
MAIL_HOST = os.environ['PORTALDS4DS1_MAIL_HOST']
if 'PORTALDS4DS1_MAIL_LOGIN' in os.environ:
@@ -80,7 +89,8 @@ if 'PORTALDS4DS1_SQL_CONN_STR' in os.environ:
######################
app = Flask(__name__)
app = Flask(__name__, static_url_path = ROUTE_PREFIX + '/static')
#app = Flask(__name__)
app.config.update(
SERVER_NAME = SERVER_NAME,
@@ -129,11 +139,11 @@ def redirect_url(default='/'):
url_for(default)
@app.route('/')
@app.route(ROUTE_PREFIX + '/')
def index():
if current_user.is_authenticated:
return redirect('/oddaja')
return redirect('/login')
return redirect(ROUTE_PREFIX + '/oddaja/')
return redirect(ROUTE_PREFIX + '/login/')
@login_manager.user_loader
@@ -142,17 +152,17 @@ def load_user(user_id):
return user
@app.route('/login')
@app.route(ROUTE_PREFIX + '/login')
def solar_login_get():
return render_template('solar-login.html')
return render_template('solar-login.html', ROUTE_PREFIX=ROUTE_PREFIX)
@app.route('/register')
@app.route(ROUTE_PREFIX + '/register')
def solar_register_get():
return render_template('solar-register.html')
return render_template('solar-register.html', ROUTE_PREFIX=ROUTE_PREFIX)
@app.route('/login', methods=['POST'])
@app.route(ROUTE_PREFIX + '/login', methods=['POST'])
def solar_login_post():
email = request.form.get('email')
password = request.form.get('password')
@@ -162,19 +172,19 @@ def solar_login_post():
if not user or not check_password_hash(user.pass_hash, password):
flash('Napačni podatki za prijavo. Poskusite ponovno.')
return redirect('/login')
return redirect(ROUTE_PREFIX + '/login/')
if not user.active:
flash('Vaš uporabniški račun še ni bil aktiviran.')
return redirect('/login')
return redirect(ROUTE_PREFIX + '/login/')
#portal.solar.add_user_session(user.id)
login_user(user, remember=remember)
return redirect('/oddaja')
return redirect(ROUTE_PREFIX + '/oddaja/')
@app.route('/register', methods=['POST'])
@app.route(ROUTE_PREFIX + '/register', methods=['POST'])
def solar_register_post():
name = request.form.get('name')
email = request.form.get('email')
@@ -187,38 +197,38 @@ def solar_register_post():
if user:
flash('Uporabniški račun s tem emailom je že registriran.')
return redirect('/register')
return redirect(ROUTE_PREFIX + '/register/')
if not name:
flash('Prazno polje za ime.')
return redirect('/register')
return redirect(ROUTE_PREFIX + '/register/')
if len(name) > 100:
flash('Predolgo ime.')
return redirect('/register')
return redirect(ROUTE_PREFIX + '/register/')
if not email:
flash('Prazno polje za elektronsko pošto.')
return redirect('/register')
return redirect(ROUTE_PREFIX + '/register/')
if len(email) > 100:
flash('Predolgi email naslov')
return redirect('/register')
return redirect(ROUTE_PREFIX + '/register/')
elif not re.search(portal.solar.REGEX_EMAIL, email):
flash('Email napačnega formata.')
return redirect('/register')
return redirect(ROUTE_PREFIX + '/register/')
if not password:
flash('Prazno polje za geslo.')
return redirect('/register')
return redirect(ROUTE_PREFIX + '/register/')
if len(password) < 8:
flash('Geslo mora biti vsaj 8 znakov dolgo.')
return redirect('/register')
return redirect(ROUTE_PREFIX + '/register/')
if len(password) > 100:
flash('Predolgo geslo.')
return redirect('/register')
return redirect(ROUTE_PREFIX + '/register/')
if institution_role not in ['coordinator', 'mentor', 'other']:
flash('Neveljavna vloga v instituciji.')
return redirect('/register')
return redirect(ROUTE_PREFIX + '/register/')
if not institution:
institution_id = portal.solar.add_institution(institution_name, "")
@@ -229,20 +239,22 @@ def solar_register_post():
user_id = portal.solar.register_new_user(name, email, password, active=False)
portal.solar.add_user_to_institution(user_id, institution_id, institution_role)
portal.solar.add_cooperation_history_item(user_id, institution_id, institution_role)
portal.solar.send_admins_new_user_notification_mail(user_id, upload_handler_solar.config)
flash('Podatki so bili poslani v potrditev. Ko bo registracija potrjena, boste o tem obveščeni po e-mailu, ki ste ga posredovali zgoraj.')
return redirect('/login')
flash('Podatki so bili poslani v potrditev. Ko bo registracija potrjena, boste o tem obveščeni po e-mailu. To lahko traja nekaj časa.')
return redirect(ROUTE_PREFIX + '/login/')
@app.route('/logout')
@app.route(ROUTE_PREFIX + '/logout')
@login_required
def logout():
logout_user()
return redirect('/login')
return redirect(ROUTE_PREFIX + '/login/')
@app.route('/<path:text>')
@app.route(ROUTE_PREFIX + '/<path:text>')
@login_required
def solar(text):
is_admin = current_user.role == 'admin'
@@ -257,6 +269,7 @@ def solar(text):
if text.startswith('oddaja/') or text == 'oddaja':
return render_template('solar-oddaja.html',
ROUTE_PREFIX=ROUTE_PREFIX,
is_admin=is_admin,
institution=current_user_institution,
institution_contract=institution_contract,
@@ -275,7 +288,8 @@ def solar(text):
else:
institution_names.append(institution.name)
return render_template('solar-zgodovina.html', upload_history=upload_items, uploader_names=uploader_names,
institution_names=institution_names, is_admin=is_admin, is_institution_coordinator=current_user_institution_coordinator)
institution_names=institution_names, is_admin=is_admin, is_institution_coordinator=current_user_institution_coordinator,
ROUTE_PREFIX=ROUTE_PREFIX)
elif text.startswith('pogodbe-institucije/') or text.startswith('pogodbe-ucencistarsi/'):
# Check for download contract request.
match = re.match('^pogodbe-(institucije|ucencistarsi)/([a-z0-9_]+\.pdf)$', text)
@@ -304,53 +318,75 @@ def solar(text):
enable_upload_school_contract = False
show_upload_form = False
collaborators = []
institution_id = ""
cooperation_history = dict()
if current_user_institution:
collaborators = portal.solar.get_all_active_institution_users(current_user_institution.id)
show_upload_form = True
contract_school = portal.solar.get_institution_contract(current_user_institution.id)
cooperation_history = portal.solar.get_institution_cooperation_history(current_user_institution.id)
logging.error(cooperation_history)
institution_id = current_user_institution.id
if portal.solar.is_institution_coordinator(current_user_obj.id, current_user_institution.id):
contracts_students = portal.solar.get_institution_student_contracts(current_user_institution.id)
enable_upload_school_contract = True
else:
contracts_students = portal.solar.get_institution_student_contracts(current_user_institution.id, current_user_obj.id)
return render_template('solar-pogodbe.html', contracts_students=contracts_students,
institution_users = portal.solar.get_all_active_institution_users(current_user_institution.id),
#logging.error(institution_users)
role_map = dict()
for institution_user in institution_users[0]:
#logging.error(institution_user)
role_map[institution_user.id] = portal.solar.get_user_institution_role_str(institution_user.id, current_user_institution.id)
return render_template('solar-pogodbe.html',
ROUTE_PREFIX=ROUTE_PREFIX,
contracts_students=contracts_students,
contract_school=contract_school,
enable_upload_school_contract=enable_upload_school_contract,
show_upload_form=show_upload_form,
collaborators=collaborators,
cooperation_history=cooperation_history,
institution_users = institution_users[0],
role_map=role_map,
user_id=current_user.id,
institution_id=current_user_institution.id,
institution_id=institution_id,
is_admin=is_admin, is_institution_coordinator=current_user_institution_coordinator)
elif text.startswith('admin/') or text == 'admin':
users = portal.solar.get_all_users_join_institutions()
inactive_users = portal.solar.get_all_users_join_institutions(active=False)
solar_institutions = portal.solar.get_all_institutions()
cooperation_history = portal.solar.get_cooperation_history()
uploads = portal.solar.get_all_upload_history(-1)
if is_admin:
return render_template('solar-admin.html', users=users, user_cooperation_history=cooperation_history,
return render_template('solar-admin.html', ROUTE_PREFIX=ROUTE_PREFIX, users=users,
institutions=solar_institutions, inactive_users=inactive_users, uploads=uploads)
elif text.startswith('manage-institution/') or text == 'manage-institution':
if portal.solar.is_institution_coordinator(current_user.id, current_user_institution.id):
solar_users = portal.solar.get_all_active_users()
institution_users = portal.solar.get_all_active_institution_users(current_user_institution.id)
return render_template('solar-manage-institution.html', users=solar_users,
institution_users=institution_users)
role_map = dict()
for institution_user in institution_users:
role_map[institution_user.id] = portal.solar.get_user_institution_role_str(institution_user.id, current_user_institution.id)
return render_template('solar-manage-institution.html',
ROUTE_PREFIX=ROUTE_PREFIX,
institution=current_user_institution,
users=solar_users,
institution_users=institution_users,
role_map=role_map)
return '', 404
@app.route('/pogodbe', methods=['POST'])
@app.route(ROUTE_PREFIX + '/pogodbe', methods=['POST'])
@login_required
def solar_upload_contract():
msg = upload_handler_solar.handle_contract_upload(request, current_user.get_id())
flash(msg)
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/adduser', methods=['POST'])
@app.route(ROUTE_PREFIX + '/adduser', methods=['POST'])
@login_required
def solar_add_user():
@@ -363,41 +399,41 @@ def solar_add_user():
if not name:
flash('Prazno polje za ime.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
if len(name) > 100:
flash('Predolgo ime.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
if not email:
flash('Prazno polje za elektronsko pošto.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
if len(email) > 100:
flash('Predolg email naslov.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
elif not re.search(portal.solar.REGEX_EMAIL, email):
flash('Email napačnega formata.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
if not password:
flash('Prazno polje za geslo.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
if len(password) > 100:
flash('Predolgo geslo.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
user = portal.solar.get_user_obj_by_email(email)
if user:
#portal.solar.undo_remove_user(user.id)
flash('Uporabnik s tem emailom je že vnešen v sistem.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
portal.solar.register_new_user(name, email, password)
flash('Uporabnik je bil uspešno dodan.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/activateuser', methods=['POST'])
@app.route(ROUTE_PREFIX + '/activateuser', methods=['POST'])
@login_required
def solar_activate_user():
if not portal.solar.is_admin(current_user.id):
@@ -406,7 +442,7 @@ def solar_activate_user():
user_id = request.form.get('id')
if not user_id:
flash('Prazno polje za ID uporabnika.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
rowcount = portal.solar.activate_user(user_id)
if rowcount == 0:
@@ -415,35 +451,35 @@ def solar_activate_user():
portal.solar.send_user_activation_mail(user_id, upload_handler_solar.config)
flash('Uporabnik je bil aktiviran.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/forgotpass')
@app.route(ROUTE_PREFIX + '/forgotpass')
def solar_forgotpass():
return render_template('solar-forgotpass.html')
return render_template('solar-forgotpass.html', ROUTE_PREFIX=ROUTE_PREFIX)
@app.route('/sendresetpass', methods=['POST'])
@app.route(ROUTE_PREFIX + '/sendresetpass', methods=['POST'])
def solar_sendresetpass():
email = request.form.get('email')
portal.solar.send_resetpass_mail(email, upload_handler_solar.config)
flash('Povezava za ponastavitev gesla je bila poslana na vpisani e-naslov.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/resetpass/<token>')
@app.route(ROUTE_PREFIX + '/resetpass/<token>')
def solar_resetpass(token):
user = portal.solar.verify_reset_token(token, upload_handler_solar.config['APP_SECRET_KEY'])
if not user:
return '', 404
return render_template('solar-resetpass.html', user=user, token=token)
return render_template('solar-resetpass.html',ROUTE_PREFIX=ROUTE_PREFIX, user=user, token=token)
@app.route('/resetpass/<token>', methods=['POST'])
@app.route(ROUTE_PREFIX + '/resetpass/<token>', methods=['POST'])
def solar_resetpass_post(token):
new_password = request.form.get('new_password')
user = portal.solar.verify_reset_token(token, upload_handler_solar.config['APP_SECRET_KEY'])
@@ -456,28 +492,33 @@ def solar_resetpass_post(token):
return '', 404
flash('Ponastavitev gesla je bila uspešna.')
return redirect('/login')
return redirect(ROUTE_PREFIX + '/login/')
@app.route('/topuploads')
@app.route(ROUTE_PREFIX + '/topuploads')
@login_required
def solar_topuploads():
return jsonify(portal.solar.get_top_uploading_institutions())
@app.route('/topuploads-institution/<institution_id>')
@app.route(ROUTE_PREFIX + '/topuploads-institution/<institution_id>')
@login_required
def solar_topuploads_institution(institution_id):
return jsonify(portal.solar.get_top_uploading_users(institution_id))
@app.route('/uploadstats-institution/<institution_id>')
@app.route(ROUTE_PREFIX + '/uploadstats-institution/<institution_id>')
@login_required
def solar_uploadstats_institution(institution_id):
return jsonify(portal.solar.get_institution_upload_stats(institution_id))
@app.route(ROUTE_PREFIX + '/uploadstats-per-region')
@login_required
def solar_uploadstats_per_region():
return jsonify(portal.solar.get_region_stats())
@app.route('/deluser', methods=['POST'])
@app.route(ROUTE_PREFIX + '/deluser', methods=['POST'])
@login_required
def solar_del_user():
if not portal.solar.is_admin(current_user.id):
@@ -485,9 +526,9 @@ def solar_del_user():
user_id = request.form.get('user_id')
portal.solar.remove_user(user_id)
flash('Uporabnik je bil odstranjen.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/addinstitution', methods=['POST'])
@app.route(ROUTE_PREFIX + '/addinstitution', methods=['POST'])
@login_required
def add_institution():
if not portal.solar.is_admin(current_user.id):
@@ -498,21 +539,21 @@ def add_institution():
if not name:
flash('Prazno polje za naziv.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
if len(name) > 100:
flash('Predolgo ime.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
if not region in portal.solar.VALID_REGIONS:
flash('Neveljavna vrednost za regijo.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
institution_id = portal.solar.add_institution(name, region)
portal.solar.grant_institution_corpus_access(institution_id, "solar") # TODO: throw out
flash('Institucija je bila dodana.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/mergeinstitutions', methods=['POST'])
@app.route(ROUTE_PREFIX + '/mergeinstitutions', methods=['POST'])
@login_required
def merge_institutions():
if not portal.solar.is_admin(current_user.id):
@@ -523,18 +564,18 @@ def merge_institutions():
if not id_from or not id_to:
flash('Prazno polje.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
institution_from = portal.solar.get_institution_obj(id_from)
institution_to = portal.solar.get_institution_obj(id_to)
if not institution_from:
flash('Institucija z ID "{}" ne obstaja.'.format(id_from))
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
if not institution_to:
flash('Institucija z ID "{}" ne obstaja.'.format(id_to))
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
portal.solar.transfer_users_institution(institution_from.id, institution_to.id)
@@ -543,45 +584,45 @@ def merge_institutions():
portal.solar.remove_institution(institution_from.id)
flash('Instituciji uspešno združeni')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/addcooperationhistoryitem', methods=['POST'])
@login_required
def add_cooperation_history_item():
if not portal.solar.is_admin(current_user.id):
return '', 404
#@app.route(ROUTE_PREFIX + '/addcooperationhistoryitem', methods=['POST'])
#@login_required
#def add_cooperation_history_item():
# if not portal.solar.is_admin(current_user.id):
# return '', 404
#
# user_id = request.form.get('user')
# institution_id = request.form.get('institution')
# role = request.form.get('role')
# school_year = request.form.get('school-year')
# badge_text = request.form.get('badge-text')
#
# user = portal.solar.get_user_obj(user_id)
# institution = portal.solar.get_institution_obj(institution_id)
#
# if not user:
# flash('Uporabnik s tem ID-jem ne obstaja.')
# return redirect(ROUTE_PREFIX + redirect_url())
#
# if not institution:
# flash('Institucija s tem ID-jem ne obstaja.')
# return redirect(ROUTE_PREFIX + redirect_url())
#
# if not role in ['coordinator', 'mentor', 'other']:
# flash('Neveljavna vloga "{}".'.format(role))
# return redirect(ROUTE_PREFIX + redirect_url())
#
# if not school_year or not re.match('[0-9]{4}/[0-9]{2}', school_year):
# flash('Šolsko leto mora biti formata "2021/22".')
# return redirect(ROUTE_PREFIX + redirect_url())
#
# portal.solar.add_cooperation_history_item(user_id, institution_id, role, school_year, badge_text)
#
# flash('Vnos dodan.')
# return redirect(ROUTE_PREFIX + redirect_url())
user_id = request.form.get('user')
institution_id = request.form.get('institution')
role = request.form.get('role')
school_year = request.form.get('school-year')
badge_text = request.form.get('badge-text')
user = portal.solar.get_user_obj(user_id)
institution = portal.solar.get_institution_obj(institution_id)
if not user:
flash('Uporabnik s tem ID-jem ne obstaja.')
return redirect(redirect_url())
if not institution:
flash('Institucija s tem ID-jem ne obstaja.')
return redirect(redirect_url())
if not role in ['coordinator', 'mentor', 'other']:
flash('Neveljavna vloga "{}".'.format(role))
return redirect(redirect_url())
if not school_year or not re.match('[0-9]{4}/[0-9]{2}', school_year):
flash('Šolsko leto mora biti formata "2021/22".')
return redirect(redirect_url())
portal.solar.add_cooperation_history_item(user_id, institution_id, role, school_year, badge_text)
flash('Vnos dodan.')
return redirect(redirect_url())
@app.route('/updateuploaditem', methods=['POST'])
@app.route(ROUTE_PREFIX + '/updateuploaditem', methods=['POST'])
@login_required
def update_upload_item():
if not portal.solar.is_admin(current_user.id):
@@ -590,7 +631,7 @@ def update_upload_item():
err_msg = portal.solar.UploadHandlerSolar.check_form(request.form)
if err_msg:
flash(err_msg)
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
item_id = request.form.get('item-id')
program = request.form.get('program')
@@ -617,22 +658,22 @@ def update_upload_item():
return '', 404
flash('Vnos spremenjen.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/delcooperationhistoryitem', methods=['POST'])
@login_required
def del_cooperation_history_item():
if not portal.solar.is_admin(current_user.id):
return '', 404
#@app.route(ROUTE_PREFIX + '/delcooperationhistoryitem', methods=['POST'])
#@login_required
#def del_cooperation_history_item():
# if not portal.solar.is_admin(current_user.id):
# return '', 404
#
# entry_id = request.form.get('entry-id')
# portal.solar.del_cooperation_history_item(entry_id)
#
# flash('Vnos odstranjen.')
# return redirect(ROUTE_PREFIX + redirect_url())
entry_id = request.form.get('entry-id')
portal.solar.del_cooperation_history_item(entry_id)
flash('Vnos odstranjen.')
return redirect(redirect_url())
@app.route('/changeinstitutiondata', methods=['POST'])
@app.route(ROUTE_PREFIX + '/changeinstitutiondata', methods=['POST'])
@login_required
def change_institution_data():
if not portal.solar.is_admin(current_user.id):
@@ -644,21 +685,21 @@ def change_institution_data():
if not new_name:
flash('Prazno polje za naziv.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
if len(new_name) > 100:
flash('Predolgo ime.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
if not new_region in portal.solar.VALID_REGIONS:
flash('Neveljavna vrednost za regijo.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
portal.solar.update_institution_data(institution_id, new_name, new_region)
flash('Podatki institucije so bili spremenjeni.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/changeuseremail', methods=['POST'])
@app.route(ROUTE_PREFIX + '/changeuseremail', methods=['POST'])
@login_required
def change_user_email():
if not portal.solar.is_admin(current_user.id):
@@ -669,17 +710,43 @@ def change_user_email():
if not re.search(portal.solar.REGEX_EMAIL, email):
flash('Email napačnega formata.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
portal.solar.update_user_email(user_id, email)
flash('Email spremenjen.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route(ROUTE_PREFIX + '/changeuserrole-institution', methods=['POST'])
@login_required
def change_user_role_institution():
institution = portal.solar.get_user_institution(current_user.id)
if not portal.solar.is_admin(current_user.id):
# Institution coordinators can only assign roles of users in their own
# institution.
if institution and portal.solar.is_institution_coordinator(current_user.id, institution.id):
pass
else:
return '', 404
user_id = request.form.get('user-id')
role = request.form.get('role')
if role not in ['coordinator', 'mentor', 'other']:
flash('Neveljavna vloga.')
return redirect(ROUTE_PREFIX + redirect_url())
portal.solar.update_user_institution_role(user_id, institution.id, role)
portal.solar.add_cooperation_history_item(user_id, institution.id, role)
flash('Vloga v instituciji spremenjena.')
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/changeuserrole', methods=['POST'])
@app.route(ROUTE_PREFIX + '/changeuserrole', methods=['POST'])
@login_required
def change_user_role():
institution = portal.solar.get_user_institution(current_user.id)
if not portal.solar.is_admin(current_user.id):
return '', 404
@@ -688,14 +755,14 @@ def change_user_role():
if not role in ['admin', 'user']:
flash('Neveljavna vloga.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
portal.solar.update_user_role(user_id, role)
flash('Vloga spremenjena.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/changeusername', methods=['POST'])
@app.route(ROUTE_PREFIX + '/changeusername', methods=['POST'])
@login_required
def change_user_name():
if not portal.solar.is_admin(current_user.id):
@@ -707,9 +774,9 @@ def change_user_name():
portal.solar.update_user_name(user_id, name)
flash('Ime in priimek spremenjena.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/addusertoinstitution', methods=['POST'])
@app.route(ROUTE_PREFIX + '/addusertoinstitution', methods=['POST'])
@login_required
def add_user_institution_mapping():
institution_id = request.form.get('institution_id')
@@ -718,7 +785,7 @@ def add_user_institution_mapping():
if institution:
institution_id = institution.id
if not (portal.solar.is_admin(current_user.id) or portal.solar.is_institution_coordinator(current_user.id, institution_id)):
if not portal.solar.is_admin(current_user.id):
return '', 404
user_id = request.form['user_id']
@@ -728,38 +795,39 @@ def add_user_institution_mapping():
if portal.solar.get_user_institution(user_id):
flash('Uporabnik je že dodeljen instituciji.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
portal.solar.add_user_to_institution(user_id, institution_id, role)
portal.solar.add_cooperation_history_item(user_id, institution_id, role)
flash('Uporabnik je bil dodeljen instituciji.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/deluserfrominstitution', methods=['POST'])
@app.route(ROUTE_PREFIX + '/deluserfrominstitution', methods=['POST'])
@login_required
def del_user_institution_mapping():
user_id = request.form['user_id']
institution = portal.solar.get_user_institution(user_id)
if not institution:
flash('Uporabnik ni član nobene institucije.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
if not portal.solar.is_admin(current_user.id) \
and not portal.solar.is_institution_coordinator(current_user.id, institution.id):
flash('Nimate ustreznih pravic za odstranitev uporabnika iz institucije.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
portal.solar.del_user_from_institution(user_id, institution.id)
flash('Uporabnik je bil odstranjen iz institucije.')
return redirect(redirect_url())
return redirect(ROUTE_PREFIX + redirect_url())
@app.route('/upload', methods=['POST'])
@app.route(ROUTE_PREFIX + '/upload', methods=['POST'])
def handle_upload():
if not current_user.is_authenticated:
return '', 404
return upload_handler_solar.handle_upload(request, current_user.get_id())
@app.route('/getuploadfile/<upload_id>/<file_hash>', methods=['GET'])
@app.route(ROUTE_PREFIX + '/getuploadfile/<upload_id>/<file_hash>', methods=['GET'])
@login_required
def get_upload_file(upload_id, file_hash):
is_admin = current_user.role == 'admin'
@@ -790,6 +858,82 @@ def get_upload_file(upload_id, file_hash):
except FileNotFoundError:
return '', 404
@app.route(ROUTE_PREFIX + '/institutionadduser', methods=['POST'])
@login_required
def solar_institution_add_user():
current_user_institution = portal.solar.get_user_institution(current_user.id)
if not portal.solar.is_institution_coordinator(current_user.id, current_user_institution.id):
return '', 404
name = request.form.get('name')
email = request.form.get('email')
role = request.form.get('role')
password=''.join(random.choices(string.ascii_lowercase, k=8))
if not name:
flash('Prazno polje za ime.')
return redirect(ROUTE_PREFIX + redirect_url())
if len(name) > 100:
flash('Predolgo ime.')
return redirect(ROUTE_PREFIX + redirect_url())
if not email:
flash('Prazno polje za elektronsko pošto.')
return redirect(ROUTE_PREFIX + redirect_url())
if len(email) > 100:
flash('Predolg email naslov.')
return redirect(ROUTE_PREFIX + redirect_url())
elif not re.search(portal.solar.REGEX_EMAIL, email):
flash('Email napačnega formata.')
return redirect(ROUTE_PREFIX + redirect_url())
if not password:
flash('Prazno polje za geslo.')
return redirect(ROUTE_PREFIX + redirect_url())
if len(password) > 100:
flash('Predolgo geslo.')
return redirect(ROUTE_PREFIX + redirect_url())
user = portal.solar.get_user_obj_by_email(email)
if user:
#portal.solar.undo_remove_user(user.id)
flash('Uporabnik s tem emailom je že vnešen v sistem.')
return redirect(ROUTE_PREFIX + redirect_url())
new_user_id = portal.solar.register_new_user(name, email, password)
portal.solar.add_user_to_institution(new_user_id, current_user_institution.id, role)
portal.solar.add_cooperation_history_item(new_user_id, current_user_institution.id, role)
portal.solar.activate_user(new_user_id)
#token za nastaviti geslo
jwt_token = portal.solar.get_password_reset_token(email, config['APP_SECRET_KEY'])
#pošlji email uporabniku
body = '''
Ustvarjen je bil uporabniški račun na Portalu Šolar.
Geslo lahko nastavite na naslednji povezavi: https://{}/resetpass/{}'''.format(config['SERVER_NAME'], jwt_token)
message = MIMEMultipart()
message['From'] = config['MAIL_LOGIN']
message['To'] = email
message['Subject'] = 'Portal Šolar: Ponastavitev gesla'
message.attach(MIMEText(body, "plain"))
text = message.as_string()
# Create a secure SSL context
context = ssl.create_default_context()
try:
with SMTP_SSL(config['MAIL_HOST'], config['SMTP_PORT'], context=context) as server:
server.login(config['MAIL_LOGIN'], config['MAIL_PASS'])
server.sendmail(config['MAIL_LOGIN'], email, text)
except Exception:
traceback.print_exc()
flash('Uporabnik je bil uspešno dodan.')
return redirect(ROUTE_PREFIX + redirect_url())
if __name__ == '__main__':
app.run(debug=True)

View File

@@ -1,5 +1,6 @@
[DEFAULT]
SERVER_NAME=localhost:5000
ROUTE_PREFIX=
SQL_CONN_STR=postgresql://portal:randompass123@localhost/portal
MAIL_HOST=posta.cjvt.si
MAIL_LOGIN=oddaja-besedil@cjvt.si

View File

@@ -0,0 +1,36 @@
"""Altered cooperation history structure.
Revision ID: 0cf2d8f74766
Revises: c7bb822adf9f
Create Date: 2022-02-14 13:04:01.143637
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '0cf2d8f74766'
down_revision = 'c7bb822adf9f'
branch_labels = None
depends_on = None
def upgrade():
# Delete all rows
query = 'DELETE FROM user_cooperation;'
op.execute(query)
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('user_cooperation', sa.Column('timestamp', sa.DateTime(), nullable=False))
op.drop_column('user_cooperation', 'badge_text')
op.drop_column('user_cooperation', 'school_year')
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('user_cooperation', sa.Column('school_year', sa.VARCHAR(), autoincrement=False, nullable=False))
op.add_column('user_cooperation', sa.Column('badge_text', sa.VARCHAR(), autoincrement=False, nullable=True))
op.drop_column('user_cooperation', 'timestamp')
# ### end Alembic commands ###

View File

@@ -71,8 +71,7 @@ class UserCooperationHistory(db.Model):
user = db.Column(db.Integer, sqlalchemy.ForeignKey('registered_user.id'), nullable=False)
institution = db.Column(db.Integer, sqlalchemy.ForeignKey('institution.id'), nullable=False)
role = db.Column(db.String, nullable=False)
school_year = db.Column(db.String, nullable=False)
badge_text = db.Column(db.String, nullable=True)
timestamp = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
class Institution(db.Model):

View File

@@ -6,6 +6,7 @@ import traceback
import ssl
from datetime import datetime
from sqlalchemy import desc
from sqlalchemy import func
from pathlib import Path
from smtplib import SMTP_SSL
@@ -24,6 +25,7 @@ from werkzeug.security import generate_password_hash
from . model import *
VALID_PROGRAMS = {'OS', 'SSG', 'MGP', 'ZG', 'NPI', 'SPI', 'SSI', 'PTI'}
VALID_SUBJECTS = {'SLO', 'DJP', 'DDP', 'DNP', 'DSP', 'DIP'}
VALID_TEXT_TYPES = {'E', 'PB', 'T', 'R'}
@@ -300,7 +302,6 @@ class UploadHandlerSolar():
@staticmethod
def check_form(form):
logging.info(form)
region = form['regija']
program = form['program']
predmet = form['predmet']
@@ -492,6 +493,28 @@ def get_institution_upload_stats(institution_id):
return res
def get_region_stats():
ret = {'CE': [0,0], 'GO': [0,0], 'KK': [0,0], 'KP': [0,0], 'KR': [0,0], 'LJ': [0,0], 'MB': [0,0], 'MS': [0,0], 'NM': [0,0], 'PO': [0,0], 'SG': [0,0]}
os = db.session.query(UploadSolar.region, func.count(UploadSolar.id)).filter_by(program="OS").group_by(UploadSolar.region).all()
neos = db.session.query(UploadSolar.region, func.count(UploadSolar.id)).filter(sqlalchemy.not_(UploadSolar.program.contains("OS"))).group_by(UploadSolar.region).all()
#logging.error(os)
#logging.error(neos)
for key, val in os:
if key not in VALID_REGIONS:
continue
ret[key][0] = val
for key, val in neos:
if key not in VALID_REGIONS:
continue
ret[key][1] = val
logging.error(ret)
return ret
def get_all_active_users():
# TODO: do filtering purely within an SQL query
@@ -529,10 +552,10 @@ def get_institution_contract(institution_id):
def get_institution_cooperation_history(institution_id):
return db.session.query(UserCooperationHistory.role,
UserCooperationHistory.school_year,
UserCooperationHistory.badge_text,
RegisteredUser.name,
items = db.session.query(UserCooperationHistory.role,
UserCooperationHistory.timestamp,
RegisteredUser.id,
RegisteredUser.name
).select_from(
UserCooperationHistory,
).join(
@@ -540,28 +563,59 @@ def get_institution_cooperation_history(institution_id):
UserCooperationHistory.user == RegisteredUser.id,
).filter(
UserCooperationHistory.institution == institution_id,
).order_by(UserCooperationHistory.school_year.desc()).all()
).order_by(UserCooperationHistory.timestamp.desc()).all()
return items
res = []
prev_schoolyear = None
item_buff = []
users_seen = set()
for item in items:
timestamp = item.timestamp
year = timestamp.year
month = timestamp.month
if month >= 9 :
school_year = '{}/{}'.format(year, str(year+1)[-2:])
else:
school_year = '{}/{}'.format(year-1, str(year)[-2:])
if school_year != prev_schoolyear:
if len(item_buff) > 0:
res.append((prev_schoolyear, item_buff))
prev_schoolyear = school_year
item_buff = []
users_seen = set()
if not item.id in users_seen:
users_seen.add(item.id)
item_buff.append(item)
if len(item_buff) > 0:
res.append((prev_schoolyear, item_buff))
return res
def get_cooperation_history():
return UserCooperationHistory.query.all()
def add_cooperation_history_item(user_id, institution_id, role, school_year, badge_text):
def add_cooperation_history_item(user_id, institution_id, role):
model_obj = UserCooperationHistory(
user=user_id,
institution=institution_id,
role=role,
school_year=school_year,
badge_text=badge_text
timestamp=datetime.now()
)
db.session.add(model_obj)
db.session.commit()
return model_obj.id
def del_cooperation_history_item(entry_id):
db.session.query(UserCooperationHistory).filter_by(id=entry_id).delete()
db.session.commit()
#def del_cooperation_history_item(entry_id):
# db.session.query(UserCooperationHistory).filter_by(id=entry_id).delete()
# db.session.commit()
def has_user_corpus_access(user_id, corpus_name):
user = RegisteredUser.query.filter_by(id=user_id).first()
@@ -597,7 +651,6 @@ def get_user_obj_by_email(email):
def get_institution_obj(institution_id):
return Institution.query.filter_by(id=institution_id).first()
def get_institution_obj_by_name(institution_name):
return Institution.query.filter_by(name=institution_name).first()
@@ -666,6 +719,12 @@ def update_user_role(user_id, role):
return rowcount
def update_user_institution_role(user_id, institution_id, role):
rowcount = db.session.query(UserInstitutionMapping).filter_by(user=user_id, institution=institution_id).update({'role': role})
db.session.commit()
return rowcount
def update_user_email(user_id, new_email):
rowcount = db.session.query(RegisteredUser).filter_by(id=user_id).update({'email': new_email})
db.session.commit()
@@ -708,6 +767,22 @@ def del_user_from_institution(user_id, institution_id):
db.session.commit()
def get_user_institution_role_str(user_id, institution_id):
res = UserInstitutionMapping.query.filter_by(
user=user_id
).filter_by(
institution=institution_id
).first()
if not res:
return ''
role_str_map = {
'coordinator': 'Koordinator/-ka',
'mentor': 'Mentor/-ica',
'other': 'Druga vloga'
}
return role_str_map[res.role]
def get_all_active_users():
return RegisteredUser.query.filter_by(active=True).order_by(RegisteredUser.id).all()
@@ -722,7 +797,6 @@ def get_all_users_join_institutions(active=True):
RegisteredUser.id == UserInstitutionMapping.user).filter(RegisteredUser.active == active).order_by(RegisteredUser.id).all()
def get_all_active_institution_users(institution_id):
return RegisteredUser.query.filter_by(active=True).join(UserInstitutionMapping,
RegisteredUser.id == UserInstitutionMapping.user).filter(UserInstitutionMapping.institution == institution_id).all()
@@ -759,9 +833,11 @@ def get_actual_studentparent_contract_filename(f_hash):
def get_password_reset_token(email, key, expires=600):
return jwt.encode({'reset_password': email,
token = jwt.encode({'reset_password': email,
'exp': int(time.time()) + expires},
key=key, algorithm='HS256')
logging.error(token)
return token
def transfer_users_institution(institution_id_from, institution_id_to):
@@ -810,7 +886,7 @@ def send_resetpass_mail(email, config):
message = MIMEMultipart()
message['From'] = config['MAIL_LOGIN']
message['To'] = email
message['Subject'] = 'Ponastavitev gesla'
message['Subject'] = 'Portal Šolar: Ponastavitev gesla'
message.attach(MIMEText(body, "plain"))
text = message.as_string()
@@ -859,7 +935,7 @@ def send_user_activation_mail(user_id, config):
message = MIMEMultipart()
message['From'] = config['MAIL_LOGIN']
message['To'] = user.email
message['Subject'] = 'Ponastavitev gesla'
message['Subject'] = 'Portal Šolar: Vaš uporabniški račun je odobren'
message.attach(MIMEText(body, "plain"))
text = message.as_string()

View File

@@ -2,19 +2,22 @@
html {
font-family: 'Roboto', sans-serif;
font-size: 16px;
color: #46535B; }
color: #46535B;
}
body {
font-size: 16px;
padding: 0;
margin: 0; }
margin: 0;
}
h1 {
font-size: 30px;
font-style: normal;
font-weight: 300;
line-height: 35px;
color: #006CB7; }
color: #006CB7;
}
h2 {
font-size: 18px;
@@ -22,16 +25,19 @@ h2 {
font-weight: 300;
line-height: 21px;
text-transform: uppercase;
color: #006CB7; }
color: #006CB7;
}
h3 {
font-size: 18px;
font-style: normal;
font-weight: 300;
line-height: 21px; }
line-height: 21px;
}
em {
font-weight: 300; }
font-weight: 300;
}
.btn {
border: none;
@@ -43,36 +49,46 @@ em {
font-size: 1.125rem;
font-weight: 400;
cursor: pointer;
transition: opacity 0.3s ease-out; }
.btn:hover {
opacity: 0.8; }
.btn:disabled {
cursor: default;
opacity: 0.5; }
-webkit-transition: opacity 0.3s ease-out;
transition: opacity 0.3s ease-out;
}
.btn:hover {
opacity: 0.8;
}
.btn:disabled {
cursor: default;
opacity: 0.5;
}
.panel {
background: #F5F5F5;
padding: 40px 60px;
border-radius: 20px;
max-width: 30rem; }
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center; }
max-width: 30rem;
}
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center;
}
.line {
background: #C4C4C4;
height: 2px;
width: 200px;
margin: auto; }
margin: auto;
}
.a-right {
display: block;
@@ -80,79 +96,114 @@ em {
font-size: 10px;
text-decoration: none;
color: #006CB7;
text-transform: uppercase; }
text-transform: uppercase;
}
.alert {
position: relative;
color: #8D3D3D;
margin-bottom: 2rem; }
.alert.alert-success {
color: #88B52F; }
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem; }
.alert p {
position: absolute;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase; }
margin-bottom: 2rem;
}
.alert.alert-success {
color: #88B52F;
}
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem;
}
.alert p {
position: absolute;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase;
}
.submit-alert {
background: white;
border: 2px solid #B7DB70;
box-sizing: border-box;
border-radius: 8px; }
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px; }
-webkit-box-sizing: border-box;
box-sizing: border-box;
border-radius: 8px;
}
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px;
}
.contract-item {
position: relative;
margin-left: 3rem;
border-bottom: 1px solid #C4C4C4;
padding-bottom: 1.25rem; }
.contract-item .contract-item-icon {
position: absolute;
left: -3rem;
top: 0;
width: 2rem;
height: 2rem; }
.contract-item .contract-item-title {
font-weight: 500;
font-size: 0.875rem;
line-height: 1rem; }
.contract-item .contract-item-date {
font-weight: normal;
font-size: 0.625rem;
line-height: 0.75rem;
text-transform: uppercase; }
.contract-item .contract-item-download {
position: absolute;
right: 0;
top: 1rem;
font-size: 0.75rem;
line-height: 0.825rem;
text-transform: uppercase;
color: #006CB7;
text-decoration: none; }
padding-bottom: 1.25rem;
}
.contract-item .contract-item-icon {
position: absolute;
left: -3rem;
top: 0;
width: 2rem;
height: 2rem;
}
.contract-item .contract-item-title {
font-weight: 500;
font-size: 0.875rem;
line-height: 1rem;
}
.contract-item .contract-item-date {
font-weight: normal;
font-size: 0.625rem;
line-height: 0.75rem;
text-transform: uppercase;
}
.contract-item .contract-item-download {
position: absolute;
right: 0;
top: 1rem;
font-size: 0.75rem;
line-height: 0.825rem;
text-transform: uppercase;
color: #006CB7;
text-decoration: none;
}
.team-item {
background: white;
width: 100%;
padding-left: 1rem;
position: relative; }
.team-item .team-item-name {
line-height: 3.25rem; }
.team-item .team-item-name .team-item-role {
color: #848C90;
margin-left: 1rem; }
position: relative;
margin-bottom: 1rem;
}
/*# sourceMappingURL=contracts.css.map */
.team-item .team-item-name {
line-height: 3.25rem;
}
.team-item .team-item-name .team-item-role {
color: #848C90;
margin-left: 1rem;
}
/*# sourceMappingURL=contracts.css.map */

View File

@@ -1,7 +1,11 @@
{
"version": 3,
"mappings": "AAAQ,+IAAuI;AAa/I,IAAK;EACH,WAAW,EAAE,oBAAoB;EACjC,SAAS,EAAC,IAAI;EACd,KAAK,EAZC,OAAO;;AAef,IAAK;EACH,SAAS,EAAC,IAAI;EACd,OAAO,EAAC,CAAC;EACT,MAAM,EAAC,CAAC;;ACpBV,EAAG;EACD,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;EACjB,KAAK,EDLA,OAAO;;ACOd,EAAG;EACD,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,SAAS;EACzB,KAAK,EDbA,OAAO;;ACgBd,EAAG;EACD,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;;AAGnB,EAAG;EACD,WAAW,EAAE,GAAG;;AAGlB,IAAK;EACH,MAAM,EAAC,IAAI;EACX,WAAW,EAAE,MAAM;EACnB,OAAO,EAAE,QAAQ;EACjB,KAAK,EAAC,KAAK;EACX,UAAU,EDhCL,OAAO;ECiCZ,aAAa,EAAE,IAAI;EACnB,SAAS,EAAE,QAAQ;EACnB,WAAW,EAAE,GAAG;EAChB,MAAM,EAAE,OAAO;EACf,UAAU,EAAE,qBAAqB;EACjC,UAAQ;IACN,OAAO,EAAE,GAAG;EAEd,aAAW;IACT,MAAM,EAAC,OAAO;IACd,OAAO,EAAC,GAAG;;AAMf,MAAO;EACL,UAAU,ED5CJ,OAAO;EC6Cb,OAAO,EAAE,SAAS;EAClB,aAAa,EAAE,IAAI;EACnB,SAAS,EAAC,KAAK;EACf,kBAAY;IACV,QAAQ,EAAC,QAAQ;IACjB,GAAG,EAAE,KAAK;IACV,IAAI,EAAC,CAAC;IACN,KAAK,EAAC,CAAC;IACP,OAAO,EAAC,KAAK;IACb,MAAM,EAAC,IAAI;IACX,UAAU,EDvDN,OAAO;ICwDX,OAAO,EAAC,SAAS;IACjB,KAAK,EAAE,KAAK;IACZ,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,MAAM;;AAKtB,KAAM;EACJ,UAAU,EDpEL,OAAO;ECqEZ,MAAM,EAAC,GAAG;EACV,KAAK,EAAC,KAAK;EACX,MAAM,EAAE,IAAI;;AAGd,QAAS;EACP,OAAO,EAAC,KAAK;EACb,UAAU,EAAE,KAAK;EACjB,SAAS,EAAC,IAAI;EACd,eAAe,EAAE,IAAI;EACrB,KAAK,EDlFA,OAAO;ECmFZ,cAAc,EAAE,SAAS;;AAG3B,MAAO;EACL,QAAQ,EAAC,QAAQ;EACjB,KAAK,EDvFD,OAAO;ECwFX,aAAa,EAAC,IAAI;EAClB,oBAAgB;IACd,KAAK,EDnFD,OAAO;ECqFb,UAAI;IACF,QAAQ,EAAC,QAAQ;IACjB,GAAG,EAAC,OAAO;IACX,KAAK,EAAC,MAAM;EAEd,QAAE;IACA,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,MAAM;IACnB,MAAM,EAAC,IAAI;IACX,IAAI,EAAC,IAAI;IACT,GAAG,EAAE,CAAC;IACN,MAAM,EAAC,CAAC;IACR,cAAc,EAAE,SAAS;;AAI7B,aAAc;EACZ,UAAU,EAAC,KAAK;EAChB,MAAM,EAAE,iBAAsB;EAC9B,UAAU,EAAE,UAAU;EACtB,aAAa,EAAE,GAAG;EAClB,kBAAK;IACH,UAAU,EAAC,MAAM;IACjB,UAAU,ED/GN,OAAO;ICgHX,aAAa,EAAE,GAAG;;ACxHtB,cAAe;EACb,QAAQ,EAAC,QAAQ;EACjB,WAAW,EAAC,IAAI;EAChB,aAAa,EAAE,iBAAe;EAC9B,cAAc,EAAC,OAAO;EACtB,kCAAoB;IAClB,QAAQ,EAAC,QAAQ;IACjB,IAAI,EAAC,KAAK;IACV,GAAG,EAAC,CAAC;IACL,KAAK,EAAC,IAAI;IACV,MAAM,EAAC,IAAI;EAEb,mCAAqB;IACnB,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,IAAI;EAEnB,kCAAoB;IAClB,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,OAAO;IACpB,cAAc,EAAE,SAAS;EAE3B,sCAAwB;IACtB,QAAQ,EAAC,QAAQ;IACjB,KAAK,EAAC,CAAC;IACP,GAAG,EAAC,IAAI;IACR,SAAS,EAAE,OAAO;IAClB,WAAW,EAAE,QAAQ;IACrB,cAAc,EAAE,SAAS;IACzB,KAAK,EF9BF,OAAO;IE+BV,eAAe,EAAE,IAAI;;AAIzB,UAAW;EACT,UAAU,EAAC,KAAK;EAChB,KAAK,EAAC,IAAI;EACV,YAAY,EAAC,IAAI;EACjB,QAAQ,EAAC,QAAQ;EACjB,0BAAgB;IACd,WAAW,EAAC,OAAO;IACnB,0CAAgB;MACd,KAAK,EFvCC,OAAO;MEwCb,WAAW,EAAC,IAAI",
"sources": ["slovenscina-theme.scss","slovenscina-elements.scss","contracts.scss"],
"names": [],
"file": "contracts.css"
"version": 3,
"mappings": "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",
"sources": [
"contracts.scss",
"slovenscina-elements.scss",
"slovenscina-theme.scss"
],
"names": [],
"file": "contracts.css"
}

View File

@@ -40,6 +40,7 @@
width:100%;
padding-left:1rem;
position:relative;
margin-bottom:1rem;
.team-item-name {
line-height:3.25rem;
.team-item-role {

View File

@@ -2,19 +2,22 @@
html {
font-family: 'Roboto', sans-serif;
font-size: 16px;
color: #46535B; }
color: #46535B;
}
body {
font-size: 16px;
padding: 0;
margin: 0; }
margin: 0;
}
h1 {
font-size: 30px;
font-style: normal;
font-weight: 300;
line-height: 35px;
color: #006CB7; }
color: #006CB7;
}
h2 {
font-size: 18px;
@@ -22,16 +25,19 @@ h2 {
font-weight: 300;
line-height: 21px;
text-transform: uppercase;
color: #006CB7; }
color: #006CB7;
}
h3 {
font-size: 18px;
font-style: normal;
font-weight: 300;
line-height: 21px; }
line-height: 21px;
}
em {
font-weight: 300; }
font-weight: 300;
}
.btn {
border: none;
@@ -43,36 +49,46 @@ em {
font-size: 1.125rem;
font-weight: 400;
cursor: pointer;
transition: opacity 0.3s ease-out; }
.btn:hover {
opacity: 0.8; }
.btn:disabled {
cursor: default;
opacity: 0.5; }
-webkit-transition: opacity 0.3s ease-out;
transition: opacity 0.3s ease-out;
}
.btn:hover {
opacity: 0.8;
}
.btn:disabled {
cursor: default;
opacity: 0.5;
}
.panel {
background: #F5F5F5;
padding: 40px 60px;
border-radius: 20px;
max-width: 30rem; }
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center; }
max-width: 30rem;
}
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center;
}
.line {
background: #C4C4C4;
height: 2px;
width: 200px;
margin: auto; }
margin: auto;
}
.a-right {
display: block;
@@ -80,133 +96,189 @@ em {
font-size: 10px;
text-decoration: none;
color: #006CB7;
text-transform: uppercase; }
text-transform: uppercase;
}
.alert {
position: relative;
color: #8D3D3D;
margin-bottom: 2rem; }
.alert.alert-success {
color: #88B52F; }
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem; }
.alert p {
position: absolute;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase; }
margin-bottom: 2rem;
}
.alert.alert-success {
color: #88B52F;
}
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem;
}
.alert p {
position: absolute;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase;
}
.submit-alert {
background: white;
border: 2px solid #B7DB70;
box-sizing: border-box;
border-radius: 8px; }
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px; }
-webkit-box-sizing: border-box;
box-sizing: border-box;
border-radius: 8px;
}
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px;
}
.form-wrapper {
margin-bottom: 1rem; }
.form-wrapper label {
display: block;
font-weight: normal;
font-size: 0.75rem;
line-height: 0.875rem;
text-transform: uppercase; }
.form-wrapper select {
display: block;
background: #FFFFFF;
border: 1px solid #B6BEC3;
padding: 0.75rem 1rem;
width: 100%; }
.form-wrapper input[type="text"] {
box-sizing: border-box;
display: block;
background: #FFFFFF;
border: 1px solid #B6BEC3;
padding: 0.75rem 1rem;
width: 100%; }
.form-wrapper input[type="radio"] {
float: left;
margin: 0;
margin-right: 0.5rem; }
.form-wrapper .dropzone {
box-sizing: border-box;
padding: 0.5rem;
height: 4.5rem;
background: #E0E6EA; }
.form-wrapper .dropzone .dz-default.dz-message {
box-sizing: border-box;
display: block;
height: 3.5rem;
text-align: center;
border: 2px dashed white; }
.form-wrapper .dropzone .dz-default.dz-message span {
display: inline-block;
background: #006CB7;
border-radius: 6px;
color: white;
padding: 0.5rem 0.75rem;
margin-top: 0.5rem;
cursor: pointer; }
.form-wrapper .dz-preview.dz-file-preview {
position: relative;
background: white;
height: 4.5rem;
margin-top: 1rem; }
.form-wrapper .dz-preview.dz-file-preview .dz-image {
position: absolute;
left: 1rem;
top: 1rem;
background: url(/static/image/file.svg);
background-repeat: no-repeat;
background-position: center;
width: 2rem;
height: 2rem; }
.form-wrapper .dz-preview.dz-file-preview .dz-image img {
display: none; }
.form-wrapper .dz-preview.dz-file-preview .dz-details .dz-filename {
position: absolute;
top: 1.5rem;
left: 4rem;
width: 50%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis; }
.form-wrapper .dz-preview.dz-file-preview .dz-details .dz-size {
position: absolute;
top: 1.5rem;
right: 2.5rem; }
.form-wrapper .dz-preview.dz-file-preview .dz-success-mark, .form-wrapper .dz-preview.dz-file-preview .dz-error-mark {
display: none; }
.form-wrapper .dz-preview.dz-file-preview .dz-progress {
position: absolute;
left: 50%;
top: 1.5rem;
width: 28%;
border-radius: 10px;
overflow: hidden; }
.form-wrapper .dz-preview.dz-file-preview .dz-progress .dz-upload {
height: 20px;
display: inline-block;
background: #006CB7; }
.form-wrapper .dz-preview.dz-file-preview .dz-remove {
position: absolute;
top: 1.5rem;
right: 1rem;
width: 1rem;
height: 1rem;
background: url(/static/image/trash.svg);
background-repeat: no-repeat;
background-position: center; }
margin-bottom: 1rem;
}
/*# sourceMappingURL=form.css.map */
.form-wrapper label {
display: block;
font-weight: normal;
font-size: 0.75rem;
line-height: 0.875rem;
text-transform: uppercase;
}
.form-wrapper select {
display: block;
background: #FFFFFF;
border: 1px solid #B6BEC3;
padding: 0.75rem 1rem;
width: 100%;
}
.form-wrapper input[type="text"] {
-webkit-box-sizing: border-box;
box-sizing: border-box;
display: block;
background: #FFFFFF;
border: 1px solid #B6BEC3;
padding: 0.75rem 1rem;
width: 100%;
}
.form-wrapper input[type="radio"] {
float: left;
margin: 0;
margin-right: 0.5rem;
}
.form-wrapper .dropzone {
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 0.5rem;
height: 4.5rem;
background: #E0E6EA;
}
.form-wrapper .dropzone .dz-default.dz-message {
-webkit-box-sizing: border-box;
box-sizing: border-box;
display: block;
height: 3.5rem;
text-align: center;
border: 2px dashed white;
}
.form-wrapper .dropzone .dz-default.dz-message span {
display: inline-block;
background: #006CB7;
border-radius: 6px;
color: white;
padding: 0.5rem 0.75rem;
margin-top: 0.5rem;
cursor: pointer;
}
.form-wrapper .dz-preview.dz-file-preview {
position: relative;
background: white;
height: 4.5rem;
margin-top: 1rem;
}
.form-wrapper .dz-preview.dz-file-preview .dz-image {
position: absolute;
left: 1rem;
top: 1rem;
background: url(/static/image/file.svg);
background-repeat: no-repeat;
background-position: center;
width: 2rem;
height: 2rem;
}
.form-wrapper .dz-preview.dz-file-preview .dz-image img {
display: none;
}
.form-wrapper .dz-preview.dz-file-preview .dz-details .dz-filename {
position: absolute;
top: 1.5rem;
left: 4rem;
width: 50%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.form-wrapper .dz-preview.dz-file-preview .dz-details .dz-size {
position: absolute;
top: 1.5rem;
right: 2.5rem;
}
.form-wrapper .dz-preview.dz-file-preview .dz-success-mark, .form-wrapper .dz-preview.dz-file-preview .dz-error-mark {
display: none;
}
.form-wrapper .dz-preview.dz-file-preview .dz-progress {
position: absolute;
left: 50%;
top: 1.5rem;
width: 28%;
border-radius: 10px;
overflow: hidden;
}
.form-wrapper .dz-preview.dz-file-preview .dz-progress .dz-upload {
height: 20px;
display: inline-block;
background: #006CB7;
}
.form-wrapper .dz-preview.dz-file-preview .dz-remove {
position: absolute;
top: 1.5rem;
right: 1rem;
width: 1rem;
height: 1rem;
background: url(/static/image/trash.svg);
background-repeat: no-repeat;
background-position: center;
}
/*# sourceMappingURL=form.css.map */

File diff suppressed because one or more lines are too long

View File

@@ -2,19 +2,22 @@
html {
font-family: 'Roboto', sans-serif;
font-size: 16px;
color: #46535B; }
color: #46535B;
}
body {
font-size: 16px;
padding: 0;
margin: 0; }
margin: 0;
}
h1 {
font-size: 30px;
font-style: normal;
font-weight: 300;
line-height: 35px;
color: #006CB7; }
color: #006CB7;
}
h2 {
font-size: 18px;
@@ -22,16 +25,19 @@ h2 {
font-weight: 300;
line-height: 21px;
text-transform: uppercase;
color: #006CB7; }
color: #006CB7;
}
h3 {
font-size: 18px;
font-style: normal;
font-weight: 300;
line-height: 21px; }
line-height: 21px;
}
em {
font-weight: 300; }
font-weight: 300;
}
.btn {
border: none;
@@ -43,36 +49,46 @@ em {
font-size: 1.125rem;
font-weight: 400;
cursor: pointer;
transition: opacity 0.3s ease-out; }
.btn:hover {
opacity: 0.8; }
.btn:disabled {
cursor: default;
opacity: 0.5; }
-webkit-transition: opacity 0.3s ease-out;
transition: opacity 0.3s ease-out;
}
.btn:hover {
opacity: 0.8;
}
.btn:disabled {
cursor: default;
opacity: 0.5;
}
.panel {
background: #F5F5F5;
padding: 40px 60px;
border-radius: 20px;
max-width: 30rem; }
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center; }
max-width: 30rem;
}
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center;
}
.line {
background: #C4C4C4;
height: 2px;
width: 200px;
margin: auto; }
margin: auto;
}
.a-right {
display: block;
@@ -80,42 +96,64 @@ em {
font-size: 10px;
text-decoration: none;
color: #006CB7;
text-transform: uppercase; }
text-transform: uppercase;
}
.alert {
position: relative;
color: #8D3D3D;
margin-bottom: 2rem; }
.alert.alert-success {
color: #88B52F; }
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem; }
.alert p {
position: absolute;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase; }
margin-bottom: 2rem;
}
.alert.alert-success {
color: #88B52F;
}
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem;
}
.alert p {
position: absolute;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase;
}
.submit-alert {
background: white;
border: 2px solid #B7DB70;
box-sizing: border-box;
border-radius: 8px; }
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px; }
-webkit-box-sizing: border-box;
box-sizing: border-box;
border-radius: 8px;
}
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px;
}
body {
background: #F5F5F5; }
background: #F5F5F5;
}
header {
position: fixed;
@@ -124,51 +162,131 @@ header {
height: 4rem;
background: #006CB7;
z-index: 1000000;
box-shadow: 0px 4px 40px rgba(0, 0, 0, 0.2); }
-webkit-box-shadow: 0px 4px 40px rgba(0, 0, 0, 0.2);
box-shadow: 0px 4px 40px rgba(0, 0, 0, 0.2);
}
header .logo {
display: inline-block;
padding: 0.5rem 1.5rem; }
header .logo img {
height: 3rem; }
padding: 0.5rem 1.5rem;
}
header .logo img {
height: 3rem;
}
header .menu-items {
float: right;
padding: 1.5rem 1.5rem;
display: inline-block; }
header .menu-items a {
margin-left: 2rem;
display: inline-block;
color: white;
text-decoration: none; }
display: inline-block;
}
header .menu-items a {
margin-left: 2rem;
display: inline-block;
color: white;
text-decoration: none;
}
.tab-nav {
margin-top: 2rem;
border-bottom: 1px solid #848C90; }
.tab-nav a {
position: relative;
top: 1px;
display: inline-block;
font-weight: 500;
text-transform: uppercase;
font-size: 1.125rem;
padding: 0.25rem 2rem;
text-decoration: none;
color: #848C90;
transition: color 0.3s ease-out; }
.tab-nav a.active, .tab-nav a:hover {
color: #006CB7;
border-bottom: 4px solid #006CB7; }
border-bottom: 1px solid #848C90;
}
.tab-nav a {
position: relative;
top: 1px;
display: inline-block;
font-weight: 500;
text-transform: uppercase;
font-size: 1.125rem;
padding: 0.25rem 2rem;
text-decoration: none;
color: #848C90;
-webkit-transition: color 0.3s ease-out;
transition: color 0.3s ease-out;
}
.tab-nav a.active, .tab-nav a:hover {
color: #006CB7;
border-bottom: 4px solid #006CB7;
}
h1.title {
font-weight: 300;
font-size: 1.5rem;
line-height: 1.75rem;
margin: 0;
color: #006CB7; }
color: #006CB7;
}
p.subtitle {
font-size: 14px;
line-height: 150%;
margin-top: 0.5rem; }
line-height: 150%;
margin-top: 0.5rem;
}
/*# sourceMappingURL=header.css.map */
/* Style The Dropdown Button */
.dropbtn {
color: white;
line-height: 4rem;
border: none;
cursor: pointer;
background: none;
padding: 0 1rem;
}
.dropbtn img {
position: relative;
top: 0.75rem;
}
/* The container <div> - needed to position the dropdown content */
.dropdown {
margin-right: 1rem;
float: right;
display: inline-block;
position: relative;
}
/* Dropdown Content (Hidden by Default) */
.dropdown-content {
display: none;
position: absolute;
right: 0;
background-color: #f9f9f9;
min-width: 160px;
-webkit-box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 1;
}
/* Links inside the dropdown */
.dropdown-content a {
color: #848C90;
padding: 0.5rem 1rem;
text-decoration: none;
display: block;
}
.dropdown-content a:hover {
background-color: #f1f1f1;
cursor: pointer;
}
.dropdown-content hr {
margin-top: 0;
margin-bottom: 0;
border-top: 1px solid #B6BEC3;
}
/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-content {
display: block;
}
/* Change the background color of the dropdown button when the dropdown content is shown */
.dropdown:hover .dropbtn {
background: rgba(0, 0, 0, 0.2);
}
/*# sourceMappingURL=header.css.map */

View File

@@ -1,7 +1,11 @@
{
"version": 3,
"mappings": "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",
"sources": ["slovenscina-theme.scss","slovenscina-elements.scss","header.scss"],
"names": [],
"file": "header.css"
"version": 3,
"mappings": "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",
"sources": [
"header.scss",
"slovenscina-elements.scss",
"slovenscina-theme.scss"
],
"names": [],
"file": "header.css"
}

View File

@@ -67,4 +67,68 @@ p.subtitle {
font-size: 14px;
line-height: 150%;
margin-top:0.5rem;
}
/* Style The Dropdown Button */
.dropbtn {
color: white;
line-height:4rem;
border: none;
cursor: pointer;
background:none;
padding:0 1rem;
img {
position:relative;
top:0.75rem;
}
}
/* The container <div> - needed to position the dropdown content */
.dropdown {
margin-right:1rem;
float:right;
display: inline-block;
position:relative;
}
/* Dropdown Content (Hidden by Default) */
.dropdown-content {
display: none;
position: absolute;
right:0;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
/* Links inside the dropdown */
.dropdown-content {
a {
color: $grey-dark;
padding: 0.5rem 1rem;
text-decoration: none;
display: block;
&:hover {
background-color: #f1f1f1;
cursor:pointer;
}
}
hr {
margin-top:0;
margin-bottom:0;
border-top: 1px solid $grey-border;
}
}
/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-content {
display: block;
}
/* Change the background color of the dropdown button when the dropdown content is shown */
.dropdown:hover .dropbtn {
background:rgba(0,0,0,0.2);
}

View File

@@ -2,19 +2,22 @@
html {
font-family: 'Roboto', sans-serif;
font-size: 16px;
color: #46535B; }
color: #46535B;
}
body {
font-size: 16px;
padding: 0;
margin: 0; }
margin: 0;
}
h1 {
font-size: 30px;
font-style: normal;
font-weight: 300;
line-height: 35px;
color: #006CB7; }
color: #006CB7;
}
h2 {
font-size: 18px;
@@ -22,16 +25,19 @@ h2 {
font-weight: 300;
line-height: 21px;
text-transform: uppercase;
color: #006CB7; }
color: #006CB7;
}
h3 {
font-size: 18px;
font-style: normal;
font-weight: 300;
line-height: 21px; }
line-height: 21px;
}
em {
font-weight: 300; }
font-weight: 300;
}
.btn {
border: none;
@@ -43,36 +49,46 @@ em {
font-size: 1.125rem;
font-weight: 400;
cursor: pointer;
transition: opacity 0.3s ease-out; }
.btn:hover {
opacity: 0.8; }
.btn:disabled {
cursor: default;
opacity: 0.5; }
-webkit-transition: opacity 0.3s ease-out;
transition: opacity 0.3s ease-out;
}
.btn:hover {
opacity: 0.8;
}
.btn:disabled {
cursor: default;
opacity: 0.5;
}
.panel {
background: #F5F5F5;
padding: 40px 60px;
border-radius: 20px;
max-width: 30rem; }
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center; }
max-width: 30rem;
}
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center;
}
.line {
background: #C4C4C4;
height: 2px;
width: 200px;
margin: auto; }
margin: auto;
}
.a-right {
display: block;
@@ -80,39 +96,60 @@ em {
font-size: 10px;
text-decoration: none;
color: #006CB7;
text-transform: uppercase; }
text-transform: uppercase;
}
.alert {
position: relative;
color: #8D3D3D;
margin-bottom: 2rem; }
.alert.alert-success {
color: #88B52F; }
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem; }
.alert p {
position: absolute;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase; }
margin-bottom: 2rem;
}
.alert.alert-success {
color: #88B52F;
}
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem;
}
.alert p {
position: absolute;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase;
}
.submit-alert {
background: white;
border: 2px solid #B7DB70;
box-sizing: border-box;
border-radius: 8px; }
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px; }
-webkit-box-sizing: border-box;
box-sizing: border-box;
border-radius: 8px;
}
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px;
}
.history-item {
background: white;
@@ -120,85 +157,127 @@ em {
max-height: 2.875rem;
padding: 1rem 1.5rem;
position: relative;
-webkit-transition: max-height 1s ease-out;
transition: max-height 1s ease-out;
cursor: pointer;
overflow: hidden; }
.history-item .history-item-chevron {
position: absolute;
bottom: 1rem;
right: 1rem; }
.history-item .history-item-date {
text-transform: uppercase;
display: inline-block;
color: #848C90;
line-height: 1rem;
font-weight: 400;
font-size: 0.875rem; }
.history-item .history-item-uploader {
display: inline-block;
padding-left: 1rem;
margin-left: 1rem;
border-left: 1px solid #848C90;
color: #848C90;
line-height: 1rem;
font-weight: 400;
font-size: 0.875rem; }
.history-item .history-item-filecount {
position: absolute;
top: 1rem;
right: 1rem;
color: #006CB7;
line-height: 1rem;
font-weight: 400;
font-size: 0.875rem; }
.history-item .history-item-desc {
position: absolute;
bottom: 1rem;
font-style: normal;
font-weight: normal;
font-size: 1rem;
line-height: 1.25rem;
color: #46535B; }
.history-item .history-item-desc-full {
display: none;
margin-top: 1rem; }
.history-item .history-item-files-full {
display: none; }
.history-item .history-item-files-full .file-item {
position: relative;
height: 3.125rem;
border-bottom: 1px solid #848C90; }
.history-item .history-item-files-full .file-item .file-icon {
position: absolute;
width: 1.5rem;
height: 1.5rem;
left: 0;
top: 1rem; }
.history-item .history-item-files-full .file-item .file-name {
position: absolute;
left: 3rem;
top: 1rem;
color: #46535B;
text-decoration: none;
cursor: pointer; }
.history-item .history-item-files-full .file-item .file-name:hover {
text-decoration: underline; }
.history-item.open {
max-height: 20rem; }
.history-item.open .history-item-date {
display: block; }
.history-item.open .history-item-uploader {
display: block;
padding-left: 0;
margin-left: 0;
border-left: none; }
.history-item.open .history-item-desc {
display: none; }
.history-item.open .history-item-desc-full {
display: block; }
.history-item.open .history-item-files-full {
display: block; }
.history-item.open .history-item-chevron {
transform: rotate(180deg); }
overflow: hidden;
}
/*# sourceMappingURL=history.css.map */
.history-item .history-item-chevron {
position: absolute;
bottom: 1rem;
right: 1rem;
}
.history-item .history-item-date {
text-transform: uppercase;
display: inline-block;
color: #848C90;
line-height: 1rem;
font-weight: 400;
font-size: 0.875rem;
}
.history-item .history-item-uploader {
display: inline-block;
padding-left: 1rem;
margin-left: 1rem;
border-left: 1px solid #848C90;
color: #848C90;
line-height: 1rem;
font-weight: 400;
font-size: 0.875rem;
}
.history-item .history-item-filecount {
position: absolute;
top: 1rem;
right: 1rem;
color: #006CB7;
line-height: 1rem;
font-weight: 400;
font-size: 0.875rem;
}
.history-item .history-item-desc {
position: absolute;
bottom: 1rem;
font-style: normal;
font-weight: normal;
font-size: 1rem;
line-height: 1.25rem;
color: #46535B;
}
.history-item .history-item-desc-full {
display: none;
margin-top: 1rem;
}
.history-item .history-item-files-full {
display: none;
}
.history-item .history-item-files-full .file-item {
position: relative;
height: 3.125rem;
border-bottom: 1px solid #848C90;
}
.history-item .history-item-files-full .file-item:last-child {
border-bottom: none;
}
.history-item .history-item-files-full .file-item .file-icon {
position: absolute;
width: 1.5rem;
height: 1.5rem;
left: 0;
top: 1rem;
}
.history-item .history-item-files-full .file-item .file-name {
position: absolute;
left: 3rem;
top: 1rem;
color: #46535B;
text-decoration: none;
cursor: pointer;
}
.history-item .history-item-files-full .file-item .file-name:hover {
text-decoration: underline;
}
.history-item.open {
max-height: 20rem;
}
.history-item.open .history-item-date {
display: block;
}
.history-item.open .history-item-uploader {
display: block;
padding-left: 0;
margin-left: 0;
border-left: none;
}
.history-item.open .history-item-desc {
display: none;
}
.history-item.open .history-item-desc-full {
display: block;
}
.history-item.open .history-item-files-full {
display: block;
}
.history-item.open .history-item-chevron {
-webkit-transform: rotate(180deg);
transform: rotate(180deg);
}
/*# sourceMappingURL=history.css.map */

View File

@@ -1,7 +1,11 @@
{
"version": 3,
"mappings": "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",
"sources": ["slovenscina-theme.scss","slovenscina-elements.scss","history.scss"],
"names": [],
"file": "history.css"
"version": 3,
"mappings": "AEAA,OAAO,CAAC,uIAAI;AAaZ,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oBAAoB;EACjC,SAAS,EAAC,IAAI;EACd,KAAK,EAZC,OAAO;CAad;;AAED,AAAA,IAAI,CAAC;EACH,SAAS,EAAC,IAAI;EACd,OAAO,EAAC,CAAC;EACT,MAAM,EAAC,CAAC;CACT;;ADrBD,AAAA,EAAE,CAAC;EACD,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;EACjB,KAAK,ECLA,OAAO;CDMb;;AACD,AAAA,EAAE,CAAC;EACD,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,SAAS;EACzB,KAAK,ECbA,OAAO;CDcb;;AAED,AAAA,EAAE,CAAC;EACD,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;CAClB;;AAED,AAAA,EAAE,CAAC;EACD,WAAW,EAAE,GAAG;CACjB;;AAED,AAAA,IAAI,CAAC;EACH,MAAM,EAAC,IAAI;EACX,WAAW,EAAE,MAAM;EACnB,OAAO,EAAE,QAAQ;EACjB,KAAK,EAAC,KAAK;EACX,UAAU,EChCL,OAAO;EDiCZ,aAAa,EAAE,IAAI;EACnB,SAAS,EAAE,QAAQ;EACnB,WAAW,EAAE,GAAG;EAChB,MAAM,EAAE,OAAO;EACf,UAAU,EAAE,qBAAqB;CAQlC;;AAlBD,AAWE,IAXE,AAWD,MAAM,CAAC;EACN,OAAO,EAAE,GAAG;CACb;;AAbH,AAcE,IAdE,AAcD,SAAS,CAAC;EACT,MAAM,EAAC,OAAO;EACd,OAAO,EAAC,GAAG;CACZ;;AAKH,AAAA,MAAM,CAAC;EACL,UAAU,EC5CJ,OAAO;ED6Cb,OAAO,EAAE,SAAS;EAClB,aAAa,EAAE,IAAI;EACnB,SAAS,EAAC,KAAK;CAchB;;AAlBD,AAKE,MALI,CAKJ,WAAW,CAAC;EACV,QAAQ,EAAC,QAAQ;EACjB,GAAG,EAAE,KAAK;EACV,IAAI,EAAC,CAAC;EACN,KAAK,EAAC,CAAC;EACP,OAAO,EAAC,KAAK;EACb,MAAM,EAAC,IAAI;EACX,UAAU,ECvDN,OAAO;EDwDX,OAAO,EAAC,SAAS;EACjB,KAAK,EAAE,KAAK;EACZ,aAAa,EAAE,IAAI;EACnB,UAAU,EAAE,MAAM;CACnB;;AAIH,AAAA,KAAK,CAAC;EACJ,UAAU,ECpEL,OAAO;EDqEZ,MAAM,EAAC,GAAG;EACV,KAAK,EAAC,KAAK;EACX,MAAM,EAAE,IAAI;CACb;;AAED,AAAA,QAAQ,CAAC;EACP,OAAO,EAAC,KAAK;EACb,UAAU,EAAE,KAAK;EACjB,SAAS,EAAC,IAAI;EACd,eAAe,EAAE,IAAI;EACrB,KAAK,EClFA,OAAO;EDmFZ,cAAc,EAAE,SAAS;CAC1B;;AAED,AAAA,MAAM,CAAC;EACL,QAAQ,EAAC,QAAQ;EACjB,KAAK,ECvFD,OAAO;EDwFX,aAAa,EAAC,IAAI;CAqBnB;;AAxBD,AAIE,MAJI,AAIH,cAAc,CAAC;EACd,KAAK,ECnFD,OAAO;CDoFZ;;AANH,AAOE,MAPI,CAOJ,GAAG,CAAC;EACF,QAAQ,EAAC,QAAQ;EACjB,GAAG,EAAC,OAAO;EACX,KAAK,EAAC,MAAM;CACb;;AAXH,AAYE,MAZI,CAYJ,CAAC,CAAC;EACA,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,IAAI;EACb,cAAc,EAAE,MAAM;EACtB,eAAe,EAAE,MAAM;EACvB,WAAW,EAAE,MAAM;EACnB,MAAM,EAAC,IAAI;EACX,IAAI,EAAC,IAAI;EACT,GAAG,EAAE,CAAC;EACN,MAAM,EAAC,CAAC;EACR,cAAc,EAAE,SAAS;CAC1B;;AAGH,AAAA,aAAa,CAAC;EACZ,UAAU,EAAC,KAAK;EAChB,MAAM,EAAE,GAAG,CAAC,KAAK,CC3GL,OAAO;ED4GnB,UAAU,EAAE,UAAU;EACtB,aAAa,EAAE,GAAG;CAMnB;;AAVD,AAKE,aALW,CAKX,IAAI,CAAC;EACH,UAAU,EAAC,MAAM;EACjB,UAAU,EC/GN,OAAO;EDgHX,aAAa,EAAE,GAAG;CACnB;;ADzHH,AAAA,aAAa,CAAC;EACZ,UAAU,EAAC,KAAK;EAChB,UAAU,EAAC,QAAQ;EACnB,UAAU,EAAC,QAAQ;EACnB,OAAO,EAAC,WAAW;EACnB,QAAQ,EAAC,QAAQ;EACjB,UAAU,EAAE,sBAAsB;EAClC,MAAM,EAAC,OAAO;EACd,QAAQ,EAAC,MAAM;CAiGhB;;AAzGD,AASE,aATW,CASX,qBAAqB,CAAC;EACpB,QAAQ,EAAC,QAAQ;EACjB,MAAM,EAAC,IAAI;EACX,KAAK,EAAC,IAAI;CACX;;AAbH,AAcE,aAdW,CAcX,kBAAkB,CAAC;EACjB,cAAc,EAAE,SAAS;EACzB,OAAO,EAAE,YAAY;EACrB,KAAK,EEbG,OAAO;EFcf,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,GAAG;EAChB,SAAS,EAAC,QAAQ;CACnB;;AArBH,AAsBE,aAtBW,CAsBX,sBAAsB,CAAC;EACrB,OAAO,EAAE,YAAY;EACrB,YAAY,EAAC,IAAI;EACjB,WAAW,EAAC,IAAI;EAChB,WAAW,EAAE,GAAG,CAAC,KAAK,CEtBd,OAAO;EFuBf,KAAK,EEvBG,OAAO;EFwBf,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,GAAG;EAChB,SAAS,EAAC,QAAQ;CACnB;;AA/BH,AAgCE,aAhCW,CAgCX,uBAAuB,CAAC;EACtB,QAAQ,EAAC,QAAQ;EACjB,GAAG,EAAC,IAAI;EACR,KAAK,EAAC,IAAI;EACV,KAAK,EEpCF,OAAO;EFqCV,WAAW,EAAE,IAAI;EACjB,WAAW,EAAE,GAAG;EAChB,SAAS,EAAC,QAAQ;CACnB;;AAxCH,AAyCE,aAzCW,CAyCX,kBAAkB,CAAC;EACjB,QAAQ,EAAC,QAAQ;EACjB,MAAM,EAAC,IAAI;EACX,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,MAAM;EACnB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,OAAO;EACpB,KAAK,EE9CD,OAAO;CF+CZ;;AAjDH,AAkDE,aAlDW,CAkDX,uBAAuB,CAAC;EACtB,OAAO,EAAE,IAAI;EACb,UAAU,EAAC,IAAI;CAChB;;AArDH,AAsDE,aAtDW,CAsDX,wBAAwB,CAAC;EACvB,OAAO,EAAE,IAAI;CA2Bd;;AAlFH,AAwDI,aAxDS,CAsDX,wBAAwB,CAEtB,UAAU,CAAC;EACT,QAAQ,EAAC,QAAQ;EACjB,MAAM,EAAC,QAAQ;EACf,aAAa,EAAE,GAAG,CAAC,KAAK,CEvDlB,OAAO;CF6Ed;;AAjFL,AA4DM,aA5DO,CAsDX,wBAAwB,CAEtB,UAAU,AAIP,WAAW,CAAC;EACX,aAAa,EAAC,IAAI;CACnB;;AA9DP,AA+DM,aA/DO,CAsDX,wBAAwB,CAEtB,UAAU,CAOR,UAAU,CAAC;EACT,QAAQ,EAAC,QAAQ;EACjB,KAAK,EAAC,MAAM;EACZ,MAAM,EAAC,MAAM;EACb,IAAI,EAAC,CAAC;EACN,GAAG,EAAC,IAAI;CACT;;AArEP,AAsEM,aAtEO,CAsDX,wBAAwB,CAEtB,UAAU,CAcR,UAAU,CAAC;EACT,QAAQ,EAAC,QAAQ;EACjB,IAAI,EAAC,IAAI;EACT,GAAG,EAAC,IAAI;EACR,KAAK,EExEL,OAAO;EFyEP,eAAe,EAAE,IAAI;EACrB,MAAM,EAAC,OAAO;CAIf;;AAhFP,AA6EQ,aA7EK,CAsDX,wBAAwB,CAEtB,UAAU,CAcR,UAAU,AAOP,MAAM,CAAC;EACN,eAAe,EAAE,SAAS;CAC3B;;AA/ET,AAmFE,aAnFW,AAmFV,KAAK,CAAC;EACL,UAAU,EAAE,KAAK;CAoBlB;;AAxGH,AAqFI,aArFS,AAmFV,KAAK,CAEJ,kBAAkB,CAAC;EAAC,OAAO,EAAC,KAAK;CAAG;;AArFxC,AAsFI,aAtFS,AAmFV,KAAK,CAGJ,sBAAsB,CAAC;EACrB,OAAO,EAAC,KAAK;EACb,YAAY,EAAC,CAAC;EACd,WAAW,EAAC,CAAC;EACb,WAAW,EAAE,IAAI;CAClB;;AA3FL,AA4FI,aA5FS,AAmFV,KAAK,CASJ,kBAAkB,CAAC;EACjB,OAAO,EAAE,IAAI;CACd;;AA9FL,AA+FI,aA/FS,AAmFV,KAAK,CAYJ,uBAAuB,CAAC;EACtB,OAAO,EAAE,KAAK;CACf;;AAjGL,AAkGI,aAlGS,AAmFV,KAAK,CAeJ,wBAAwB,CAAC;EACvB,OAAO,EAAE,KAAK;CACf;;AApGL,AAqGI,aArGS,AAmFV,KAAK,CAkBJ,qBAAqB,CAAC;EACpB,SAAS,EAAC,cAAc;CACzB",
"sources": [
"history.scss",
"slovenscina-elements.scss",
"slovenscina-theme.scss"
],
"names": [],
"file": "history.css"
}

View File

@@ -60,6 +60,9 @@
position:relative;
height:3.125rem;
border-bottom: 1px solid $grey-dark;
&:last-child {
border-bottom:none;
}
.file-icon {
position:absolute;
width:1.5rem;

View File

@@ -2,19 +2,22 @@
html {
font-family: 'Roboto', sans-serif;
font-size: 16px;
color: #46535B; }
color: #46535B;
}
body {
font-size: 16px;
padding: 0;
margin: 0; }
margin: 0;
}
h1 {
font-size: 30px;
font-style: normal;
font-weight: 300;
line-height: 35px;
color: #006CB7; }
color: #006CB7;
}
h2 {
font-size: 18px;
@@ -22,16 +25,19 @@ h2 {
font-weight: 300;
line-height: 21px;
text-transform: uppercase;
color: #006CB7; }
color: #006CB7;
}
h3 {
font-size: 18px;
font-style: normal;
font-weight: 300;
line-height: 21px; }
line-height: 21px;
}
em {
font-weight: 300; }
font-weight: 300;
}
.btn {
border: none;
@@ -43,36 +49,46 @@ em {
font-size: 1.125rem;
font-weight: 400;
cursor: pointer;
transition: opacity 0.3s ease-out; }
.btn:hover {
opacity: 0.8; }
.btn:disabled {
cursor: default;
opacity: 0.5; }
-webkit-transition: opacity 0.3s ease-out;
transition: opacity 0.3s ease-out;
}
.btn:hover {
opacity: 0.8;
}
.btn:disabled {
cursor: default;
opacity: 0.5;
}
.panel {
background: #F5F5F5;
padding: 40px 60px;
border-radius: 20px;
max-width: 30rem; }
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center; }
max-width: 30rem;
}
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center;
}
.line {
background: #C4C4C4;
height: 2px;
width: 200px;
margin: auto; }
margin: auto;
}
.a-right {
display: block;
@@ -80,119 +96,164 @@ em {
font-size: 10px;
text-decoration: none;
color: #006CB7;
text-transform: uppercase; }
text-transform: uppercase;
}
.alert {
position: relative;
color: #8D3D3D;
margin-bottom: 2rem; }
.alert.alert-success {
color: #88B52F; }
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem; }
.alert p {
position: absolute;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase; }
margin-bottom: 2rem;
}
.alert.alert-success {
color: #88B52F;
}
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem;
}
.alert p {
position: absolute;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase;
}
.submit-alert {
background: white;
border: 2px solid #B7DB70;
box-sizing: border-box;
border-radius: 8px; }
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px; }
-webkit-box-sizing: border-box;
box-sizing: border-box;
border-radius: 8px;
}
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px;
}
.background {
background: #848C90;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
overflow-y: scroll;
height: 200vh;
width: 100%; }
width: 100%;
}
.login-panel {
position: absolute;
width: 50%;
left: 25%;
top: 100px;
box-shadow: 0 0 2.5rem 0 rgba(0, 0, 0, 0.25); }
-webkit-box-shadow: 0 0 2.5rem 0 rgba(0, 0, 0, 0.25);
box-shadow: 0 0 2.5rem 0 rgba(0, 0, 0, 0.25);
}
.register-button {
position: relative;
margin-top: 2rem;
display: block;
text-decoration: none;
color: #848C90; }
.register-button img {
width: 2rem; }
.register-button h3 {
position: absolute;
left: 3rem;
top: 0;
margin: 0; }
.register-button p {
position: absolute;
left: 3rem;
bottom: 0;
margin: 0;
font-size: 0.875rem;
font-weight: 300; }
color: #848C90;
}
.register-button img {
width: 2rem;
}
.register-button h3 {
position: absolute;
left: 3rem;
top: 0;
margin: 0;
}
.register-button p {
position: absolute;
left: 3rem;
bottom: 0;
margin: 0;
font-size: 0.875rem;
font-weight: 300;
}
.input-wrapper {
position: relative;
height: 4rem; }
.input-wrapper .input-icon {
position: absolute;
left: 0;
top: 0.5rem;
display: block;
width: 1.5rem; }
.input-wrapper .input-floating-label {
position: absolute;
left: 3rem;
right: 0;
display: block; }
.input-wrapper .input-floating-label input, .input-wrapper .input-floating-label select {
padding: 0.25rem 0;
background: none;
border: none;
display: block;
width: 100%;
border-bottom: 2px solid #C4C4C4; }
.input-wrapper .input-floating-label input:focus, .input-wrapper .input-floating-label select:focus {
outline: none; }
.input-wrapper .input-floating-label label {
font-size: 10px;
color: #46535B; }
.input-wrapper .input-floating-label label.input-hint {
color: #848C90; }
height: 4rem;
}
.input-wrapper .input-icon {
position: absolute;
left: 0;
top: 0.5rem;
display: block;
width: 1.5rem;
}
.input-wrapper .input-floating-label {
position: absolute;
left: 3rem;
right: 0;
display: block;
}
.input-wrapper .input-floating-label input, .input-wrapper .input-floating-label select {
padding: 0.25rem 0;
background: none;
border: none;
display: block;
width: 100%;
border-bottom: 2px solid #C4C4C4;
}
.input-wrapper .input-floating-label input:focus, .input-wrapper .input-floating-label select:focus {
outline: none;
}
.input-wrapper .input-floating-label label {
font-size: 10px;
color: #46535B;
}
.input-wrapper .input-floating-label label.input-hint {
color: #848C90;
}
.back-to-login {
position: relative;
height: 2rem; }
.back-to-login img {
position: absolute;
top: 0.25rem;
left: 0.5rem; }
.back-to-login a {
position: relative;
top: 0;
left: 3rem;
text-decoration: none;
color: #46535B; }
height: 2rem;
}
/*# sourceMappingURL=login-styles.css.map */
.back-to-login img {
position: absolute;
top: 0.25rem;
left: 0.5rem;
}
.back-to-login a {
position: relative;
top: 0;
left: 3rem;
text-decoration: none;
color: #46535B;
}
/*# sourceMappingURL=login-styles.css.map */

View File

@@ -1,7 +1,11 @@
{
"version": 3,
"mappings": "AAAQ,+IAAuI;AAa/I,IAAK;EACH,WAAW,EAAE,oBAAoB;EACjC,SAAS,EAAC,IAAI;EACd,KAAK,EAZC,OAAO;;AAef,IAAK;EACH,SAAS,EAAC,IAAI;EACd,OAAO,EAAC,CAAC;EACT,MAAM,EAAC,CAAC;;ACpBV,EAAG;EACD,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;EACjB,KAAK,EDLA,OAAO;;ACOd,EAAG;EACD,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,SAAS;EACzB,KAAK,EDbA,OAAO;;ACgBd,EAAG;EACD,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;;AAGnB,EAAG;EACD,WAAW,EAAE,GAAG;;AAGlB,IAAK;EACH,MAAM,EAAC,IAAI;EACX,WAAW,EAAE,MAAM;EACnB,OAAO,EAAE,QAAQ;EACjB,KAAK,EAAC,KAAK;EACX,UAAU,EDhCL,OAAO;ECiCZ,aAAa,EAAE,IAAI;EACnB,SAAS,EAAE,QAAQ;EACnB,WAAW,EAAE,GAAG;EAChB,MAAM,EAAE,OAAO;EACf,UAAU,EAAE,qBAAqB;EACjC,UAAQ;IACN,OAAO,EAAE,GAAG;EAEd,aAAW;IACT,MAAM,EAAC,OAAO;IACd,OAAO,EAAC,GAAG;;AAMf,MAAO;EACL,UAAU,ED5CJ,OAAO;EC6Cb,OAAO,EAAE,SAAS;EAClB,aAAa,EAAE,IAAI;EACnB,SAAS,EAAC,KAAK;EACf,kBAAY;IACV,QAAQ,EAAC,QAAQ;IACjB,GAAG,EAAE,KAAK;IACV,IAAI,EAAC,CAAC;IACN,KAAK,EAAC,CAAC;IACP,OAAO,EAAC,KAAK;IACb,MAAM,EAAC,IAAI;IACX,UAAU,EDvDN,OAAO;ICwDX,OAAO,EAAC,SAAS;IACjB,KAAK,EAAE,KAAK;IACZ,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,MAAM;;AAKtB,KAAM;EACJ,UAAU,EDpEL,OAAO;ECqEZ,MAAM,EAAC,GAAG;EACV,KAAK,EAAC,KAAK;EACX,MAAM,EAAE,IAAI;;AAGd,QAAS;EACP,OAAO,EAAC,KAAK;EACb,UAAU,EAAE,KAAK;EACjB,SAAS,EAAC,IAAI;EACd,eAAe,EAAE,IAAI;EACrB,KAAK,EDlFA,OAAO;ECmFZ,cAAc,EAAE,SAAS;;AAG3B,MAAO;EACL,QAAQ,EAAC,QAAQ;EACjB,KAAK,EDvFD,OAAO;ECwFX,aAAa,EAAC,IAAI;EAClB,oBAAgB;IACd,KAAK,EDnFD,OAAO;ECqFb,UAAI;IACF,QAAQ,EAAC,QAAQ;IACjB,GAAG,EAAC,OAAO;IACX,KAAK,EAAC,MAAM;EAEd,QAAE;IACA,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,MAAM;IACnB,MAAM,EAAC,IAAI;IACX,IAAI,EAAC,IAAI;IACT,GAAG,EAAE,CAAC;IACN,MAAM,EAAC,CAAC;IACR,cAAc,EAAE,SAAS;;AAI7B,aAAc;EACZ,UAAU,EAAC,KAAK;EAChB,MAAM,EAAE,iBAAsB;EAC9B,UAAU,EAAE,UAAU;EACtB,aAAa,EAAE,GAAG;EAClB,kBAAK;IACH,UAAU,EAAC,MAAM;IACjB,UAAU,ED/GN,OAAO;ICgHX,aAAa,EAAE,GAAG;;ACtHtB,WAAY;EACV,UAAU,EFCA,OAAO;EEAjB,uBAAuB,EAAE,KAAK;EAC9B,oBAAoB,EAAE,KAAK;EAC3B,kBAAkB,EAAE,KAAK;EACzB,eAAe,EAAE,KAAK;EACtB,UAAU,EAAE,MAAM;EAClB,MAAM,EAAC,KAAK;EACZ,KAAK,EAAC,IAAI;;AAGZ,YAAa;EACX,QAAQ,EAAC,QAAQ;EACjB,KAAK,EAAC,GAAG;EACT,IAAI,EAAC,GAAG;EACR,GAAG,EAAE,KAAK;EACV,UAAU,EAAE,gCAA6B;;AAG3C,gBAAiB;EACf,QAAQ,EAAC,QAAQ;EACjB,UAAU,EAAC,IAAI;EACf,OAAO,EAAE,KAAK;EACd,eAAe,EAAE,IAAI;EACrB,KAAK,EFtBK,OAAO;EEuBjB,oBAAI;IACF,KAAK,EAAC,IAAI;EAEZ,mBAAG;IACD,QAAQ,EAAC,QAAQ;IACjB,IAAI,EAAC,IAAI;IACT,GAAG,EAAC,CAAC;IACL,MAAM,EAAC,CAAC;EAEV,kBAAE;IACA,QAAQ,EAAC,QAAQ;IACjB,IAAI,EAAC,IAAI;IACT,MAAM,EAAC,CAAC;IACR,MAAM,EAAC,CAAC;IACR,SAAS,EAAC,QAAQ;IAClB,WAAW,EAAE,GAAG;;AAIpB,cAAe;EACb,QAAQ,EAAC,QAAQ;EACjB,MAAM,EAAC,IAAI;EACX,0BAAY;IACV,QAAQ,EAAC,QAAQ;IACjB,IAAI,EAAC,CAAC;IACN,GAAG,EAAC,MAAM;IACV,OAAO,EAAC,KAAK;IACb,KAAK,EAAC,MAAM;EAEd,oCAAsB;IACpB,QAAQ,EAAC,QAAQ;IACjB,IAAI,EAAE,IAAI;IACV,KAAK,EAAC,CAAC;IACP,OAAO,EAAC,KAAK;IACb,uFAAc;MACZ,OAAO,EAAC,SAAS;MACjB,UAAU,EAAE,IAAI;MAChB,MAAM,EAAC,IAAI;MACX,OAAO,EAAC,KAAK;MACb,KAAK,EAAC,IAAI;MACV,aAAa,EAAE,iBAAe;MAC9B,mGAAQ;QACN,OAAO,EAAE,IAAI;IAIjB,0CAAM;MACJ,SAAS,EAAE,IAAI;MACf,KAAK,EFzEH,OAAO;IE2EX,qDAAiB;MACf,KAAK,EF1EC,OAAO;;AEgFnB,cAAe;EACb,QAAQ,EAAC,QAAQ;EACjB,MAAM,EAAC,IAAI;EACX,kBAAI;IACF,QAAQ,EAAC,QAAQ;IACjB,GAAG,EAAC,OAAO;IACX,IAAI,EAAC,MAAM;EAEb,gBAAE;IACA,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAC,CAAC;IACL,IAAI,EAAC,IAAI;IACT,eAAe,EAAE,IAAI;IACrB,KAAK,EF/FD,OAAO",
"sources": ["slovenscina-theme.scss","slovenscina-elements.scss","login-styles.scss"],
"names": [],
"file": "login-styles.css"
"version": 3,
"mappings": "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",
"sources": [
"login-styles.scss",
"slovenscina-elements.scss",
"slovenscina-theme.scss"
],
"names": [],
"file": "login-styles.css"
}

View File

@@ -2,19 +2,22 @@
html {
font-family: 'Roboto', sans-serif;
font-size: 16px;
color: #46535B; }
color: #46535B;
}
body {
font-size: 16px;
padding: 0;
margin: 0; }
margin: 0;
}
h1 {
font-size: 30px;
font-style: normal;
font-weight: 300;
line-height: 35px;
color: #006CB7; }
color: #006CB7;
}
h2 {
font-size: 18px;
@@ -22,16 +25,19 @@ h2 {
font-weight: 300;
line-height: 21px;
text-transform: uppercase;
color: #006CB7; }
color: #006CB7;
}
h3 {
font-size: 18px;
font-style: normal;
font-weight: 300;
line-height: 21px; }
line-height: 21px;
}
em {
font-weight: 300; }
font-weight: 300;
}
.btn {
border: none;
@@ -43,36 +49,46 @@ em {
font-size: 1.125rem;
font-weight: 400;
cursor: pointer;
transition: opacity 0.3s ease-out; }
.btn:hover {
opacity: 0.8; }
.btn:disabled {
cursor: default;
opacity: 0.5; }
-webkit-transition: opacity 0.3s ease-out;
transition: opacity 0.3s ease-out;
}
.btn:hover {
opacity: 0.8;
}
.btn:disabled {
cursor: default;
opacity: 0.5;
}
.panel {
background: #F5F5F5;
padding: 40px 60px;
border-radius: 20px;
max-width: 30rem; }
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center; }
max-width: 30rem;
}
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center;
}
.line {
background: #C4C4C4;
height: 2px;
width: 200px;
margin: auto; }
margin: auto;
}
.a-right {
display: block;
@@ -80,38 +96,58 @@ em {
font-size: 10px;
text-decoration: none;
color: #006CB7;
text-transform: uppercase; }
text-transform: uppercase;
}
.alert {
position: relative;
color: #8D3D3D;
margin-bottom: 2rem; }
.alert.alert-success {
color: #88B52F; }
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem; }
.alert p {
position: absolute;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase; }
margin-bottom: 2rem;
}
.alert.alert-success {
color: #88B52F;
}
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem;
}
.alert p {
position: absolute;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase;
}
.submit-alert {
background: white;
border: 2px solid #B7DB70;
box-sizing: border-box;
border-radius: 8px; }
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px; }
-webkit-box-sizing: border-box;
box-sizing: border-box;
border-radius: 8px;
}
/*# sourceMappingURL=manage-institution.css.map */
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px;
}
/*# sourceMappingURL=manage-institution.css.map */

View File

@@ -1,7 +1,11 @@
{
"version": 3,
"mappings": "AAAQ,+IAAuI;AAa/I,IAAK;EACH,WAAW,EAAE,oBAAoB;EACjC,SAAS,EAAC,IAAI;EACd,KAAK,EAZC,OAAO;;AAef,IAAK;EACH,SAAS,EAAC,IAAI;EACd,OAAO,EAAC,CAAC;EACT,MAAM,EAAC,CAAC;;ACpBV,EAAG;EACD,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;EACjB,KAAK,EDLA,OAAO;;ACOd,EAAG;EACD,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,SAAS;EACzB,KAAK,EDbA,OAAO;;ACgBd,EAAG;EACD,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;;AAGnB,EAAG;EACD,WAAW,EAAE,GAAG;;AAGlB,IAAK;EACH,MAAM,EAAC,IAAI;EACX,WAAW,EAAE,MAAM;EACnB,OAAO,EAAE,QAAQ;EACjB,KAAK,EAAC,KAAK;EACX,UAAU,EDhCL,OAAO;ECiCZ,aAAa,EAAE,IAAI;EACnB,SAAS,EAAE,QAAQ;EACnB,WAAW,EAAE,GAAG;EAChB,MAAM,EAAE,OAAO;EACf,UAAU,EAAE,qBAAqB;EACjC,UAAQ;IACN,OAAO,EAAE,GAAG;EAEd,aAAW;IACT,MAAM,EAAC,OAAO;IACd,OAAO,EAAC,GAAG;;AAMf,MAAO;EACL,UAAU,ED5CJ,OAAO;EC6Cb,OAAO,EAAE,SAAS;EAClB,aAAa,EAAE,IAAI;EACnB,SAAS,EAAC,KAAK;EACf,kBAAY;IACV,QAAQ,EAAC,QAAQ;IACjB,GAAG,EAAE,KAAK;IACV,IAAI,EAAC,CAAC;IACN,KAAK,EAAC,CAAC;IACP,OAAO,EAAC,KAAK;IACb,MAAM,EAAC,IAAI;IACX,UAAU,EDvDN,OAAO;ICwDX,OAAO,EAAC,SAAS;IACjB,KAAK,EAAE,KAAK;IACZ,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,MAAM;;AAKtB,KAAM;EACJ,UAAU,EDpEL,OAAO;ECqEZ,MAAM,EAAC,GAAG;EACV,KAAK,EAAC,KAAK;EACX,MAAM,EAAE,IAAI;;AAGd,QAAS;EACP,OAAO,EAAC,KAAK;EACb,UAAU,EAAE,KAAK;EACjB,SAAS,EAAC,IAAI;EACd,eAAe,EAAE,IAAI;EACrB,KAAK,EDlFA,OAAO;ECmFZ,cAAc,EAAE,SAAS;;AAG3B,MAAO;EACL,QAAQ,EAAC,QAAQ;EACjB,KAAK,EDvFD,OAAO;ECwFX,aAAa,EAAC,IAAI;EAClB,oBAAgB;IACd,KAAK,EDnFD,OAAO;ECqFb,UAAI;IACF,QAAQ,EAAC,QAAQ;IACjB,GAAG,EAAC,OAAO;IACX,KAAK,EAAC,MAAM;EAEd,QAAE;IACA,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,IAAI;IACb,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,MAAM;IACnB,MAAM,EAAC,IAAI;IACX,IAAI,EAAC,IAAI;IACT,GAAG,EAAE,CAAC;IACN,MAAM,EAAC,CAAC;IACR,cAAc,EAAE,SAAS;;AAI7B,aAAc;EACZ,UAAU,EAAC,KAAK;EAChB,MAAM,EAAE,iBAAsB;EAC9B,UAAU,EAAE,UAAU;EACtB,aAAa,EAAE,GAAG;EAClB,kBAAK;IACH,UAAU,EAAC,MAAM;IACjB,UAAU,ED/GN,OAAO;ICgHX,aAAa,EAAE,GAAG",
"sources": ["slovenscina-theme.scss","slovenscina-elements.scss"],
"names": [],
"file": "manage-institution.css"
"version": 3,
"mappings": "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",
"sources": [
"manage-institution.scss",
"slovenscina-elements.scss",
"slovenscina-theme.scss"
],
"names": [],
"file": "manage-institution.css"
}

View File

@@ -1,31 +1,42 @@
.hidden-sm {
display: none; }
display: none;
}
.container {
width: 90%;
margin-left: auto;
margin-right: auto; }
@media only screen and (min-width: 33.75em) {
.container {
width: 80%; } }
@media only screen and (min-width: 60em) {
.container {
width: 90%;
max-width: 80rem; } }
margin-right: auto;
}
@media only screen and (min-width: 33.75em) {
.container {
width: 80%;
}
}
@media only screen and (min-width: 60em) {
.container {
width: 90%;
max-width: 80rem;
}
}
.row {
position: relative;
width: 100%; }
width: 100%;
}
.row [class^="col"] {
float: left;
margin: 0.5rem 2%;
min-height: 0.125rem; }
min-height: 0.125rem;
}
.row::after {
content: "";
display: table;
clear: both; }
clear: both;
}
.col-1,
.col-2,
@@ -39,82 +50,96 @@
.col-10,
.col-11,
.col-12 {
width: 96%; }
width: 96%;
}
.col-1-sm {
width: 4.3333333333%; }
width: 4.33333%;
}
.col-2-sm {
width: 12.6666666667%; }
width: 12.66667%;
}
.col-3-sm {
width: 21%; }
width: 21%;
}
.col-4-sm {
width: 29.3333333333%; }
width: 29.33333%;
}
.col-5-sm {
width: 37.6666666667%; }
width: 37.66667%;
}
.col-6-sm {
width: 46%; }
width: 46%;
}
.col-7-sm {
width: 54.3333333333%; }
width: 54.33333%;
}
.col-8-sm {
width: 62.6666666667%; }
width: 62.66667%;
}
.col-9-sm {
width: 71%; }
width: 71%;
}
.col-10-sm {
width: 79.3333333333%; }
width: 79.33333%;
}
.col-11-sm {
width: 87.6666666667%; }
width: 87.66667%;
}
.col-12-sm {
width: 96%; }
width: 96%;
}
@media only screen and (min-width: 45em) {
.col-1 {
width: 4.3333333333%; }
width: 4.33333%;
}
.col-2 {
width: 12.6666666667%; }
width: 12.66667%;
}
.col-3 {
width: 21%; }
width: 21%;
}
.col-4 {
width: 29.3333333333%; }
width: 29.33333%;
}
.col-5 {
width: 37.6666666667%; }
width: 37.66667%;
}
.col-6 {
width: 46%; }
width: 46%;
}
.col-7 {
width: 54.3333333333%; }
width: 54.33333%;
}
.col-8 {
width: 62.6666666667%; }
width: 62.66667%;
}
.col-9 {
width: 71%; }
width: 71%;
}
.col-10 {
width: 79.3333333333%; }
width: 79.33333%;
}
.col-11 {
width: 87.6666666667%; }
width: 87.66667%;
}
.col-12 {
width: 96%; }
width: 96%;
}
.hidden-sm {
display: block; } }
/*# sourceMappingURL=simple-grid.css.map */
display: block;
}
}
/*# sourceMappingURL=simple-grid.css.map */

View File

@@ -1,7 +1,9 @@
{
"version": 3,
"mappings": "AACA,UAAW;EACT,OAAO,EAAE,IAAI;;AAWf,UAAW;EACT,KAAK,EAAE,GAAG;EACV,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;EAElB,2CAAsD;IALxD,UAAW;MAMP,KAAK,EAAE,GAAG;EAGZ,wCAAsD;IATxD,UAAW;MAUP,KAAK,EAAE,GAAG;MACV,SAAS,EAAE,KAAK;;AAIpB,IAAK;EACH,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;;AAGb,mBAAoB;EAClB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,SAAS;EACjB,UAAU,EAAE,QAAQ;;AAGtB,WAAY;EACV,OAAO,EAAE,EAAE;EACX,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;AAGb;;;;;;;;;;;OAWQ;EACN,KAAK,EAlDC,GAAG;;AAqDX,SAAU;EAAE,KAAK,EAAC,aAAmC;;AACrD,SAAU;EAAE,KAAK,EAAE,cAAkC;;AACrD,SAAU;EAAE,KAAK,EAAE,GAAiC;;AACpD,SAAU;EAAE,KAAK,EAAE,cAAiC;;AACpD,SAAU;EAAE,KAAK,EAAE,cAAwC;;AAC3D,SAAU;EAAE,KAAK,EAAE,GAAiC;;AACpD,SAAU;EAAE,KAAK,EAAE,cAAwC;;AAC3D,SAAU;EAAE,KAAK,EAAE,cAAwC;;AAC3D,SAAU;EAAE,KAAK,EAAE,GAAwC;;AAC3D,UAAW;EAAE,KAAK,EAAE,cAAyC;;AAC7D,UAAW;EAAE,KAAK,EAAE,cAAyC;;AAC7D,UAAW;EAAE,KAAK,EAhEV,GAAG;;AAkEX,wCAAoD;EAClD,MAAO;IAAE,KAAK,EAAC,aAAmC;;EAClD,MAAO;IAAE,KAAK,EAAE,cAAkC;;EAClD,MAAO;IAAE,KAAK,EAAE,GAAiC;;EACjD,MAAO;IAAE,KAAK,EAAE,cAAiC;;EACjD,MAAO;IAAE,KAAK,EAAE,cAAwC;;EACxD,MAAO;IAAE,KAAK,EAAE,GAAiC;;EACjD,MAAO;IAAE,KAAK,EAAE,cAAwC;;EACxD,MAAO;IAAE,KAAK,EAAE,cAAwC;;EACxD,MAAO;IAAE,KAAK,EAAE,GAAwC;;EACxD,OAAQ;IAAE,KAAK,EAAE,cAAyC;;EAC1D,OAAQ;IAAE,KAAK,EAAE,cAAyC;;EAC1D,OAAQ;IAAE,KAAK,EA9ET,GAAG;;EAgFT,UAAW;IACT,OAAO,EAAE,KAAK",
"sources": ["simple-grid.scss"],
"names": [],
"file": "simple-grid.css"
"version": 3,
"mappings": "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",
"sources": [
"simple-grid.scss"
],
"names": [],
"file": "simple-grid.css"
}

View File

@@ -0,0 +1,192 @@
@import url(https://fonts.googleapis.com/css?family=Roboto:400,400italic,500,500italic,700,700italic,900,900italic,300italic,300,100italic,100);
html {
font-family: 'Roboto', sans-serif;
font-size: 16px;
color: #46535B;
}
body {
font-size: 16px;
padding: 0;
margin: 0;
}
h1 {
font-size: 30px;
font-style: normal;
font-weight: 300;
line-height: 35px;
color: #006CB7;
}
h2 {
font-size: 18px;
font-style: normal;
font-weight: 300;
line-height: 21px;
text-transform: uppercase;
color: #006CB7;
}
h3 {
font-size: 18px;
font-style: normal;
font-weight: 300;
line-height: 21px;
}
em {
font-weight: 300;
}
.btn {
border: none;
line-height: 2.5rem;
padding: 0 2.5rem;
color: white;
background: #006CB7;
border-radius: 20px;
font-size: 1.125rem;
font-weight: 400;
cursor: pointer;
-webkit-transition: opacity 0.3s ease-out;
transition: opacity 0.3s ease-out;
}
.btn:hover {
opacity: 0.8;
}
.btn:disabled {
cursor: default;
opacity: 0.5;
}
.panel {
background: #F5F5F5;
padding: 40px 60px;
border-radius: 20px;
max-width: 30rem;
}
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center;
}
.line {
background: #C4C4C4;
height: 2px;
width: 200px;
margin: auto;
}
.a-right {
display: block;
text-align: right;
font-size: 10px;
text-decoration: none;
color: #006CB7;
text-transform: uppercase;
}
.alert {
position: relative;
color: #8D3D3D;
margin-bottom: 2rem;
}
.alert.alert-success {
color: #88B52F;
}
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem;
}
.alert p {
position: absolute;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase;
}
.submit-alert {
background: white;
border: 2px solid #B7DB70;
-webkit-box-sizing: border-box;
box-sizing: border-box;
border-radius: 8px;
}
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px;
}
.tableFixHead {
overflow-y: scroll;
max-height: 306px;
}
.tableFixHead thead th {
position: -webkit-sticky;
position: sticky;
top: 0;
}
table {
border-collapse: collapse;
width: 100%;
}
table th, table td {
padding: 8px 16px;
border: 1px solid #ccc;
}
table th {
background: #eee;
}
table input[type=submit], table a {
font-size: 0.8rem;
background: none;
outline: none;
border: none;
cursor: pointer;
text-decoration: none;
color: #006CB7;
}
table input[type=submit]:hover, table a:hover {
text-decoration: underline;
}
/*# sourceMappingURL=slovenscina-admin.css.map */

View File

@@ -0,0 +1,11 @@
{
"version": 3,
"mappings": "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",
"sources": [
"slovenscina-admin.scss",
"slovenscina-elements.scss",
"slovenscina-theme.scss"
],
"names": [],
"file": "slovenscina-admin.css"
}

View File

@@ -0,0 +1,33 @@
@import "slovenscina-elements.scss";
.tableFixHead {
overflow-y: scroll;
max-height: 306px;
}
.tableFixHead thead th {
position: sticky;
top: 0;
}
table {
border-collapse: collapse;
width: 100%;
th,td {
padding: 8px 16px;
border: 1px solid #ccc;
}
th {
background: #eee;
}
input[type=submit],a {
font-size: 0.8rem;
background:none;
outline:none;
border:none;
cursor:pointer;
text-decoration: none;
color:$blue;
&:hover {
text-decoration: underline;
}
}
}

View File

@@ -1,8 +1,153 @@
@import url(https://fonts.googleapis.com/css?family=Roboto:400,400italic,500,500italic,700,700italic,900,900italic,300italic,300,100italic,100);
html {
font-family: 'Roboto', sans-serif;
color: #46535B; }
font-size: 16px;
color: #46535B;
}
body {
font-size: 16px;
padding: 0;
margin: 0;
}
h1 {
font-size: 30px;
font-style: normal;
font-weight: 300;
line-height: 35px;
color: #006CB7;
}
h2 {
font-size: 18px;
font-style: normal;
font-weight: 300;
line-height: 21px;
text-transform: uppercase;
color: #006CB7;
}
h3 {
font-size: 18px;
font-style: normal;
font-weight: 300;
line-height: 21px;
}
em {
font-weight: 300;
}
.btn {
border: none;
line-height: 2.5rem;
padding: 0 2.5rem;
color: white;
background: #006CB7;
border-radius: 20px;
font-size: 1.125rem;
font-weight: 400;
cursor: pointer;
-webkit-transition: opacity 0.3s ease-out;
transition: opacity 0.3s ease-out;
}
.btn:hover {
opacity: 0.8;
}
.btn:disabled {
cursor: default;
opacity: 0.5;
}
.panel {
background: #F5F5F5; }
background: #F5F5F5;
padding: 40px 60px;
border-radius: 20px;
max-width: 30rem;
}
/*# sourceMappingURL=slovenscina-elments.css.map */
.panel .panel-logo {
position: absolute;
top: -60px;
left: 0;
right: 0;
display: block;
margin: auto;
background: #F5F5F5;
padding: 20px 30px;
width: 100px;
border-radius: 100%;
text-align: center;
}
.line {
background: #C4C4C4;
height: 2px;
width: 200px;
margin: auto;
}
.a-right {
display: block;
text-align: right;
font-size: 10px;
text-decoration: none;
color: #006CB7;
text-transform: uppercase;
}
.alert {
position: relative;
color: #8D3D3D;
margin-bottom: 2rem;
}
.alert.alert-success {
color: #88B52F;
}
.alert img {
position: relative;
top: 0.25rem;
width: 1.8rem;
}
.alert p {
position: absolute;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
height: 2rem;
left: 3rem;
top: 0;
margin: 0;
text-transform: uppercase;
}
.submit-alert {
background: white;
border: 2px solid #B7DB70;
-webkit-box-sizing: border-box;
box-sizing: border-box;
border-radius: 8px;
}
.submit-alert .btn {
margin-top: 0.5rem;
background: #88B52F;
border-radius: 4px;
}
/*# sourceMappingURL=slovenscina-elements.css.map */

View File

@@ -1,7 +1,10 @@
{
"version": 3,
"mappings": "AAMA,IAAK;EACH,WAAW,EAAE,oBAAoB;EACjC,KAAK,EANC,OAAO;;ACAf,MAAO;EACL,UAAU,EDCJ,OAAO",
"sources": ["slovenscina-theme.scss","slovenscina-elments.scss"],
"names": [],
"file": "slovenscina-elments.css"
"version": 3,
"mappings": "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",
"sources": [
"slovenscina-elements.scss",
"slovenscina-theme.scss"
],
"names": [],
"file": "slovenscina-elements.css"
}

View File

@@ -1,5 +1,13 @@
@import url(https://fonts.googleapis.com/css?family=Roboto:400,400italic,500,500italic,700,700italic,900,900italic,300italic,300,100italic,100);
html {
font-family: 'Roboto', sans-serif;
color: #46535B; }
font-size: 16px;
color: #46535B;
}
/*# sourceMappingURL=slovenscina-theme.css.map */
body {
font-size: 16px;
padding: 0;
margin: 0;
}
/*# sourceMappingURL=slovenscina-theme.css.map */

View File

@@ -1,7 +1,9 @@
{
"version": 3,
"mappings": "AAMA,IAAK;EACH,WAAW,EAAE,oBAAoB;EACjC,KAAK,EANC,OAAO",
"sources": ["slovenscina-theme.scss"],
"names": [],
"file": "slovenscina-theme.css"
"version": 3,
"mappings": "AAAA,OAAO,CAAC,uIAAI;AAaZ,AAAA,IAAI,CAAC;EACH,WAAW,EAAE,oBAAoB;EACjC,SAAS,EAAC,IAAI;EACd,KAAK,EAZC,OAAO;CAad;;AAED,AAAA,IAAI,CAAC;EACH,SAAS,EAAC,IAAI;EACd,OAAO,EAAC,CAAC;EACT,MAAM,EAAC,CAAC;CACT",
"sources": [
"slovenscina-theme.scss"
],
"names": [],
"file": "slovenscina-theme.css"
}

View File

@@ -1,17 +1,22 @@
.text-center {
text-align: center; }
text-align: center;
}
.m-b-1 {
margin-bottom: 1rem; }
margin-bottom: 1rem;
}
.m-b-2 {
margin-bottom: 2rem; }
margin-bottom: 2rem;
}
.m-b-3 {
margin-bottom: 3rem; }
margin-bottom: 3rem;
}
.set-open-transition {
-webkit-transition: max-height 0.3s ease-out;
transition: max-height 0.3s ease-out;
overflow: hidden; }
/*# sourceMappingURL=utils.css.map */
overflow: hidden;
}
/*# sourceMappingURL=utils.css.map */

View File

@@ -1,7 +1,9 @@
{
"version": 3,
"mappings": "AAAA,YAAa;EACX,UAAU,EAAE,MAAM;;AAGpB,MAAO;EACL,aAAa,EAAC,IAAI;;AAEpB,MAAO;EACL,aAAa,EAAC,IAAI;;AAEpB,MAAO;EACL,aAAa,EAAC,IAAI;;AAGpB,oBAAqB;EACnB,UAAU,EAAE,wBAAwB;EACpC,QAAQ,EAAE,MAAM",
"sources": ["utils.scss"],
"names": [],
"file": "utils.css"
"version": 3,
"mappings": "AAAA,AAAA,YAAY,CAAC;EACX,UAAU,EAAE,MAAM;CACnB;;AAED,AAAA,MAAM,CAAC;EACL,aAAa,EAAC,IAAI;CACnB;;AACD,AAAA,MAAM,CAAC;EACL,aAAa,EAAC,IAAI;CACnB;;AACD,AAAA,MAAM,CAAC;EACL,aAAa,EAAC,IAAI;CACnB;;AAED,AAAA,oBAAoB,CAAC;EACnB,UAAU,EAAE,wBAAwB;EACpC,QAAQ,EAAE,MAAM;CACjB",
"sources": [
"utils.scss"
],
"names": [],
"file": "utils.css"
}

BIN
static/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

10
static/favicon.svg Normal file
View File

@@ -0,0 +1,10 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<rect fill="#006CB7" width="512" height="512"/>
<path fill="#fff" d="M409.26,145.32V69.5l-46.06,55.16c-5.06-1.88-10.5-3.99-16.1-5.71c-16.12-4.52-32.56-7.82-49.17-9.86
c-5.37-0.47-11.2-0.47-17.04-0.47c-64.88,0-87.21,25.27-87.21,51.25c0,29.89,32.44,46.95,107.28,66.27
c89.47,22.07,117.94,63.93,117.94,114.79c0.04,6.77-0.59,13.54-1.87,20.19c41.39-26.92,66.98-64.24,66.98-105.48
c0-43.74-28.79-83.02-74.61-110.33"/>
<path fill="#fff" d="M241.92,278.65c-84.49-19.95-124.47-61.66-124.47-112.6c-0.13-10.68,1.69-21.29,5.37-31.3
c-57.41,27.07-94.76,71.13-94.76,120.89c0,42.02,26.61,79.89,69.32,107.04v79.81l47.38-56.73c23.89,8.63,48.73,14.33,73.98,16.98
c8.56,0.7,17.35,1.17,26.53,1.17c65.66,0,96.39-23.47,96.39-58.45c0-29.26-28.32-50-99.81-66.82"/>
</svg>

After

Width:  |  Height:  |  Size: 852 B

5
static/image/menu.svg Normal file
View File

@@ -0,0 +1,5 @@
<svg width="7" height="27" viewBox="0 0 7 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="3.5" cy="3.5" r="2.5" stroke="#F5F5F5" stroke-width="2"/>
<circle cx="3.5" cy="13.5" r="2.5" stroke="#F5F5F5" stroke-width="2"/>
<circle cx="3.5" cy="23.5" r="2.5" stroke="#F5F5F5" stroke-width="2"/>
</svg>

After

Width:  |  Height:  |  Size: 325 B

View File

@@ -3,10 +3,12 @@
<head>
<meta charset="UTF-8">
<title>Admin panel - Šolar</title>
<link rel="stylesheet" href="../static/css/header.css" type="text/css">
<link rel="stylesheet" href="../static/css/form.css" type="text/css">
<link rel="stylesheet" href="../static/css/simple-grid.css" type="text/css">
<link rel="stylesheet" href="../static/css/manage-institution.css" type="text/css">
<link rel="icon" href="/static/favicon.ico" type="image/x-icon" >
<link rel="icon" href="static/favicon.svg" sizes="any" type="image/svg+xml">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/header.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/form.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/simple-grid.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/manage-institution.css" type="text/css">
<style>
.tableFixHead {
overflow-y: scroll;
@@ -35,17 +37,17 @@
</head>
<body>
<header>
<div class="logo"><a href="../"><img src="../static/image/logo-white.svg"/></a></div>
<div class="logo"><a href="{{ROUTE_PREFIX}}/"><img src="{{ROUTE_PREFIX}}/static/image/logo-white.svg"/></a></div>
<div class="menu-items">
<a href="../logout">Odjava</a>
<a href="{{ROUTE_PREFIX}}/oddaja">Oddaja besedil</a>
{% if is_institution_coordinator %}
<a href="../manage-institution">Upravljaj z institucijo</a>
<a href="{{ROUTE_PREFIX}}/manage-institution">Upravljaj z ekipo</a>
{% endif %}
{% if is_admin %}
<a href="../admin">Administracijski meni</a>
<a href="{{ROUTE_PREFIX}}/admin">Administracijski meni</a>
{% endif %}
<a href="../oddaja">Oddaja</a>
<a href="https://slovenscina.eu/" target="_blank">Več informacij</a>
<a href="https://slovenscina.eu/" target="_blank">Več informacij o sodelovanju</a>
<a href="{{ROUTE_PREFIX}}/logout">Odjava</a>
</div>
</header>
<div class="container" style="margin-top:8rem;">
@@ -83,7 +85,7 @@
</table>
</div>
<h3>Dodaj uporabnika</h3>
<form action="../adduser" method="post">
<form action="{{ROUTE_PREFIX}}/adduser" method="post">
<label for="name">Ime in priimek:</label><br>
<input type="text" id="name" name="name"><br>
<label for="email">Email:</label><br>
@@ -93,7 +95,7 @@
<input type="submit" value="Dodaj">
</form>
<h3>Spremeni email uporabnika</h3>
<form action="../changeuseremail" method="post">
<form action="{{ROUTE_PREFIX}}/changeuseremail" method="post">
<label for="user-id">ID uporabnika:</label><br>
<input type="text" id="user-id" name="user-id"><br>
<label for="email">Nov email:</label><br>
@@ -101,7 +103,7 @@
<input type="submit" value="Spremeni">
</form>
<h3>Spremeni ime in priimek uporabnika</h3>
<form action="../changeusername" method="post">
<form action="{{ROUTE_PREFIX}}/changeusername" method="post">
<label for="user-id">ID uporabnika:</label><br>
<input type="text" id="user-id" name="user-id"><br>
<label for="name">Ime in priimek:</label><br>
@@ -109,13 +111,13 @@
<input type="submit" value="Spremeni">
</form>
<h3>Odstrani uporabnika</h3>
<form action="../deluser" method="post">
<form action="{{ROUTE_PREFIX}}/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>Dodeli uporabnika instituciji</h3>
<form action="../addusertoinstitution" method="post">
<form action="{{ROUTE_PREFIX}}/addusertoinstitution" method="post">
<label for="user_id">ID uporabnika:</label>
<input type="text" id="user_id" name="user_id"><br>
<label for="institution_id">ID institucije:</label>
@@ -129,13 +131,13 @@
<input type="submit" value="Dodeli">
</form>
<h3>Odstrani uporabnika iz institucije</h3>
<form action="../deluserfrominstitution" method="post">
<form action="{{ROUTE_PREFIX}}/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>
<h3>Spremeni vlogo uporabniškega računa</h3>
<form action="../changeuserrole" method="post">
<form action="{{ROUTE_PREFIX}}/changeuserrole" method="post">
<label for="user-id">ID uporabnika:</label>
<input type="text" id="user-id" name="user-id"><br>
<label for="role">Vloga:</label>
@@ -155,6 +157,7 @@
<th>Email</th>
<th>Institucija</th>
<th>Vloga v instituciji</th>
<th>Akcije</th>
</tr>
</thead>
<tbody>
@@ -165,20 +168,21 @@
<td>{{item[0].email}}</td>
<td>{{item[1].institution}}</td>
<td>{{item[1].role}}</td>
<td>
<form action="{{ROUTE_PREFIX}}/activateuser" method="post">
<input type="hidden" id="id" name="id" value="{{item[0].id}}">
<input type="submit" value="Aktiviraj">
</form>
</td>
</tr>
{% endfor %}
</table>
</div>
<h3>Aktiviraj uporabnika</h3>
<form action="../activateuser" method="post">
<label for="id">ID uporabnika:</label>
<input type="text" id="id" name="id"><br>
<input type="submit" value="Aktiviraj">
</form>
<div> </div>
<h2>Institucije</h2>
<h3>Dodaj institucijo</h3>
<form action="../addinstitution" method="post">
<form action="{{ROUTE_PREFIX}}/addinstitution" method="post">
<label for="name">Naziv:</label>
<input type="text" id="name" name="name"><br>
<label for="region">Regija:</label>
@@ -218,7 +222,7 @@
</table>
</div>
<h3>Združi instituciji</h3>
<form action="../mergeinstitutions" method="post">
<form action="{{ROUTE_PREFIX}}/mergeinstitutions" method="post">
<label for="id-from">Institucijo z ID</label>
<input type="text" id="id-from" name="id-from">
<label for="id-to">združi v institucijo z ID</label>
@@ -226,7 +230,7 @@
<input type="submit" value="Združi">
</form>
<h3>Spremeni podatke institucije</h3>
<form action="../changeinstitutiondata" method="post">
<form action="{{ROUTE_PREFIX}}/changeinstitutiondata" method="post">
<label for="id">ID institucije</label>
<input type="text" id="id" name="id"><br>
<label for="name">Nov naziv:</label>
@@ -247,52 +251,8 @@
</select>
<input type="submit" value="Spremeni">
</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>
<h3>Dodaj vnos</h3>
<form action="../addcooperationhistoryitem" method="post">
<label for="user">ID uporabnika</label>
<input type="text" id="user" name="user"><br>
<label for="institution">ID institucije</label>
<input type="text" id="institution" name="institution"><br>
<label for="role">Vloga</label>
<select name="role" id="role">
<option value="coordinator">Koordinator/-ka</option>
<option value="mentor">Mentor/-ica</option>
<option value="other">Druga vloga</option>
</select><br>
<label for="school-year">Šolsko leto (npr. "2021/22")</label>
<input type="text" id="school-year" name="school-year"><br>
<label for="badge-text">Besedilo značke</label>
<input type="text" id="badge-text" name="badge-text"><br>
<input type="submit" value="Dodaj">
</form>
<h3>Odstrani vnos</h3>
<form action="../delcooperationhistoryitem" method="post">
<form action="{{ROUTE_PREFIX}}/delcooperationhistoryitem" method="post">
<label for="entry-id">ID vnosa</label>
<input type="text" id="entry-id" name="entry-id"><br>
<input type="submit" value="Odstrani">
@@ -338,7 +298,7 @@
</table>
</div>
<h3>Posodobi podatke nalaganja</h3>
<form action="../updateuploaditem" method="post">
<form action="{{ROUTE_PREFIX}}/updateuploaditem" method="post">
<label for="item-id">ID nalaganja</label>
<input type="text" id="item-id" name="item-id"/><br>
<label for="program">Program</label>

View File

@@ -3,20 +3,22 @@
<head>
<meta charset="UTF-8">
<title>Portal ŠOLAR</title>
<link rel="stylesheet" href="../static/css/login-styles.css" type="text/css">
<link rel="stylesheet" href="../static/css/utils.css" type="text/css">
<link rel="icon" href="/static/favicon.ico" type="image/x-icon" >
<link rel="icon" href="static/favicon.svg" sizes="any" type="image/svg+xml">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/login-styles.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/utils.css" type="text/css">
</head>
<body>
<div class="background">
<div class="panel login-panel">
<div class="panel-logo">
<img src="../static/image/logo.svg" alt="logo"/>
<img src="{{ROUTE_PREFIX}}/static/image/logo.svg" alt="logo"/>
</div>
<h1 class="m-b-3">Pozabljeno geslo - ŠOLAR</h1>
<div>
<form method="POST" action="../sendresetpass" class="m-b-2">
<form method="POST" action="{{ROUTE_PREFIX}}/sendresetpass" class="m-b-2">
<div class="input-wrapper">
<img src="../static/image/user.svg" alt="user" class="input-icon"/>
<img src="{{ROUTE_PREFIX}}/static/image/user.svg" alt="user" class="input-icon"/>
<div class="input-floating-label">
<label>E-mail</label>
<input type="text" name="email">
@@ -28,15 +30,15 @@
{% with messages = get_flashed_messages() %}
{% if messages %}
<div class="alert alert-success">
<img src="../static/image/success.svg" alt="alert"/>
<img src="{{ROUTE_PREFIX}}/static/image/success.svg" alt="alert"/>
<p>{{ messages[0] }}</p>
</div>
{% endif %}
{% endwith %}
<div class="back-to-login">
<img src="../static/image/chevron-left.svg"/>
<a href="../login">Nazaj na prijavo</a>
<img src="{{ROUTE_PREFIX}}/static/image/chevron-left.svg"/>
<a href="{{ROUTE_PREFIX}}/login">Nazaj na prijavo</a>
</div>
</div>
</div>

View File

@@ -3,14 +3,16 @@
<head>
<meta charset="UTF-8">
<title>Portal ŠOLAR</title>
<link rel="stylesheet" href="../static/css/login-styles.css" type="text/css">
<link rel="stylesheet" href="../static/css/utils.css" type="text/css">
<link rel="icon" href="/static/favicon.ico" type="image/x-icon" >
<link rel="icon" href="static/favicon.svg" sizes="any" type="image/svg+xml">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/login-styles.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/utils.css" type="text/css">
</head>
<body>
<div class="background">
<div class="panel login-panel">
<div class="panel-logo">
<img src="../static/image/logo.svg" alt="logo"/>
<img src="{{ROUTE_PREFIX}}/static/image/logo.svg" alt="logo"/>
</div>
<h2 class="text-center">Portal za oddajanje besedil</h2>
<div class="line"></div>
@@ -23,41 +25,41 @@
{% if messages %}
{% if "potrditev" in messages[0] or "uspešna" in messages[0] %}
<div class="alert alert-success">
<img src="../static/image/success.svg" alt="alert"/>
<img src="{{ROUTE_PREFIX}}/static/image/success.svg" alt="alert"/>
<p>{{ messages[0] }}</p>
</div>
{% else %}
<div class="alert">
<img src="../static/image/alert.svg" alt="alert"/>
<img src="{{ROUTE_PREFIX}}/static/image/alert.svg" alt="alert"/>
<p>{{ messages[0] }}</p>
</div>
{% endif %}
{% endif %}
{% endwith %}
<div>
<form method="POST" action="../login" class="m-b-2">
<form method="POST" action="{{ROUTE_PREFIX}}/login" class="m-b-2">
<div class="input-wrapper">
<img src="../static/image/user.svg" alt="user" class="input-icon"/>
<img src="{{ROUTE_PREFIX}}/static/image/user.svg" alt="user" class="input-icon"/>
<div class="input-floating-label">
<label>E-mail</label>
<input type="text" name="email">
</div>
</div>
<div class="input-wrapper">
<img src="../static/image/password.svg" alt="user" class="input-icon"/>
<img src="{{ROUTE_PREFIX}}/static/image/password.svg" alt="user" class="input-icon"/>
<div class="input-floating-label">
<label>Geslo</label>
<input type="password" name="password">
</div>
</div>
<a href="../forgotpass" class="a-right m-b-1">Pozabljeno geslo</a>
<a href="{{ROUTE_PREFIX}}/forgotpass" class="a-right m-b-1">Pozabljeno geslo</a>
<button class="btn" style="margin-left: 46px;">PRIJAVA</button>
</form>
</div>
<a href="../register" class="register-button">
<img src="../static/image/register.svg" alt="register"/>
<a href="{{ROUTE_PREFIX}}/register" class="register-button">
<img src="{{ROUTE_PREFIX}}/static/image/register.svg" alt="register"/>
<h3>Registracija</h3>
<p>Še nimate uporabniškega računa? Registrirajte se!</p>
</a>

View File

@@ -3,119 +3,126 @@
<head>
<meta charset="UTF-8">
<title>Upravljanje institucije - Šolar</title>
<link rel="stylesheet" href="../static/css/header.css" type="text/css">
<link rel="stylesheet" href="../static/css/form.css" type="text/css">
<link rel="stylesheet" href="../static/css/simple-grid.css" type="text/css">
<link rel="stylesheet" href="../static/css/manage-institution.css" type="text/css">
<style>
.tableFixHead {
overflow-y: scroll;
max-height: 306px;
}
.tableFixHead thead th {
position: sticky;
top: 0;
}
table {
border-collapse: collapse;
width: 100%;
}
th,
td {
padding: 8px 16px;
border: 1px solid #ccc;
}
th {
background: #eee;
}
h2 {
color: blue;
}
</style>
<link rel="icon" href="/static/favicon.ico" type="image/x-icon" >
<link rel="icon" href="static/favicon.svg" sizes="any" type="image/svg+xml">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/header.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/form.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/simple-grid.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/slovenscina-admin.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/manage-institution.css" type="text/css">
</head>
<body>
<header>
<div class="logo"><a href="../"><img src="../static/image/logo-white.svg"/></a></div>
<div class="logo"><a href="{{ROUTE_PREFIX}}/"><img src="{{ROUTE_PREFIX}}/static/image/logo-white.svg"/></a></div>
<div class="menu-items">
<a href="../logout">Odjava</a>
<a href="{{ROUTE_PREFIX}}/oddaja">Oddaja besedil</a>
{% if is_institution_coordinator %}
<a href="../manage-institution">Upravljaj z institucijo</a>
<a href="{{ROUTE_PREFIX}}/manage-institution">Upravljaj z ekipo</a>
{% endif %}
{% if is_admin %}
<a href="../admin">Administracijski meni</a>
<a href="{{ROUTE_PREFIX}}/admin">Administracijski meni</a>
{% endif %}
<a href="../oddaja">Oddaja</a>
<a href="https://slovenscina.eu/" target="_blank">Več informacij</a>
<a href="https://slovenscina.eu/" target="_blank">Več informacij o sodelovanju</a>
<a href="{{ROUTE_PREFIX}}/logout">Odjava</a>
</div>
</header>
<div class="container" style="margin-top:8rem;">
{% with messages = get_flashed_messages() %}
{% if messages %}
<div style="background: blue;">
<div>
{{ messages[0] }}
</div>
{% endif %}
{% endwith %}
<h3>Seznam vseh aktivnih uporabnikov</h3>
<div class="tableFixHead">
<table>
<thead>
<tr>
<th>ID</th>
<th>Ime in priimek</th>
<th>Email</th>
</tr>
</thead>
<tbody>
{% for item in users %}
<tr>
<td>{{item.id}}</td>
<td>{{item.name}}</td>
<td>{{item.email}}</td>
</tr>
{% endfor %}
</table>
<div class="row">
<div class="col-12">
<h1>{{institution.name}}</h1>
<h3>Seznam uporabnikov v vaši instituciji</h3>
<table class="tableFixHead">
<thead>
<tr>
<th>Ime in priimek</th>
<th>Email</th>
<th>Vloga</th>
<th>Akcije</th>
</tr>
</thead>
<tbody>
{% for item in institution_users %}
<tr>
<td>{{item.name}}</td>
<td>{{item.email}}</td>
<td>
<div>
<a href="javascript:void(0);" onclick="toggleEditForm(this)" class="toggle-edit-role">Spremeni</a>
{{role_map[item.id]}}
</div>
<form action="{{ROUTE_PREFIX}}/changeuserrole-institution" method="post" style="display:none;">
<input type="hidden" id="user-id" name="user-id" value="{{item.id}}"/>
<select class="role" name="role">
<option value="coordinator">Koordinator/-ka</option>
<option value="mentor">Mentor/-ica</option>
<option value="other">Druga vloga</option>
</select>
<input type="submit" value="Shrani"/>
</form>
</td>
<td>
<form action="{{ROUTE_PREFIX}}/deluserfrominstitution" method="post">
<input type="hidden" id="user_id" name="user_id" value="{{item.id}}">
<input type="submit" value="Odstrani uporabnika">
</form>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
<h3>Seznam uporabnikov v vaši instituciji</h3>
<div class="tableFixHead">
<table>
<thead>
<tr>
<th>ID</th>
<th>Ime in priimek</th>
<th>Email</th>
</tr>
</thead>
<tbody>
{% for item in institution_users %}
<tr>
<td>{{item.id}}</td>
<td>{{item.name}}</td>
<td>{{item.email}}</td>
</tr>
{% endfor %}
</table>
</div>
<form action="/institutionadduser" method="POST">
<div class="row">
<div class="col-6">
<h1>Dodaj uporabnika</h1>
<div class="form-wrapper">
<label for="regija">Ime</label>
<input type="text" name="name" />
</div>
<div class="form-wrapper">
<label for="regija">Email</label>
<input type="text" name="email" />
</div>
<div class="form-wrapper">
<label for="regija">Vloga</label>
<select class="role" name="role">
<option value="coordinator">Koordinator/-ka</option>
<option value="mentor">Mentor/-ica</option>
<option value="other">Druga vloga</option>
</select>
</div>
<input type="submit" class="btn" value="Dodaj"/>
</div>
</div>
</form>
<br>
<h3>Dodaj uporabnika instituciji</h3>
<form action="../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="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="../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>
</div>
</body>
<script>
var toggleEditForm = function(el) {
var td = el.closest("td");
el.closest("div").style.display = "none";
td.querySelector("form").style.display = "block";
};
</script>
</html>

View File

@@ -3,23 +3,25 @@
<head>
<meta charset="UTF-8">
<title>Portal za oddajanje besedil</title>
<link rel="stylesheet" href="../static/css/header.css" type="text/css">
<link rel="stylesheet" href="../static/css/form.css" type="text/css">
<link rel="stylesheet" href="../static/css/simple-grid.css" type="text/css">
<link rel="stylesheet" href="../static/css/utils.css" type="text/css">
<link rel="icon" href="/static/favicon.ico" type="image/x-icon" >
<link rel="icon" href="static/favicon.svg" sizes="any" type="image/svg+xml">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/header.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/form.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/simple-grid.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/utils.css" type="text/css">
</head>
<body>
<header>
<div class="logo"><a href="../"><img src="../static/image/logo-white.svg"/></a></div>
<div class="logo"><a href="{{ROUTE_PREFIX}}/"><img src="{{ROUTE_PREFIX}}/static/image/logo-white.svg"/></a></div>
<div class="menu-items">
<a href="../logout">Odjava</a>
{% if is_institution_coordinator %}
<a href="../manage-institution">Upravljaj z institucijo</a>
<a href="{{ROUTE_PREFIX}}/manage-institution">Upravljaj z ekipo</a>
{% endif %}
{% if is_admin %}
<a href="../admin">Administracijski meni</a>
<a href="{{ROUTE_PREFIX}}/admin">Administracijski meni</a>
{% endif %}
<a href="https://slovenscina.eu/" target="_blank">Več informacij</a>
<a href="https://slovenscina.eu/" target="_blank">Več informacij o sodelovanju</a>
<a href="{{ROUTE_PREFIX}}/logout">Odjava</a>
</div>
</header>
<div class="container" style="margin-top:8rem;">
@@ -30,9 +32,9 @@
<div class="tab-nav">
<a href="../oddaja" class="active">Oddaja besedil</a>
<a href="../zgodovina">Zgodovina sodelovanja</a>
<a href="../pogodbe">Ekipa</a>
<a href="{{ROUTE_PREFIX}}/oddaja" class="active">Oddaja besedil</a>
<a href="{{ROUTE_PREFIX}}/zgodovina">Zgodovina sodelovanja</a>
<a href="{{ROUTE_PREFIX}}/pogodbe">Ekipa</a>
</div>
</div>
</div>
@@ -43,21 +45,21 @@
<div class="col-6">
{% if not institution %}
<div class="alert">
<img src="../static/image/alert.svg" alt="alert"/>
<img src="{{ROUTE_PREFIX}}/static/image/alert.svg" alt="alert"/>
<p>Niste član nobene institucije!</p>
</div>
{% elif not institution_contract %}
<!--<div class="alert">
<img src="../static/image/alert.svg" alt="alert"/>
<img src="{{ROUTE_PREFIX}}/static/image/alert.svg" alt="alert"/>
<p>Pogodba s šolo še ni naložena!</p>
</div>-->
{% endif %}
<div class="alert" id="error-message">
<img src="../static/image/alert.svg" alt="alert"/>
<img src="{{ROUTE_PREFIX}}/static/image/alert.svg" alt="alert"/>
<p></p>
</div>
<div class="alert alert-success" id="success-message">
<img src="../static/image/success.svg" alt="alert"/>
<img src="{{ROUTE_PREFIX}}/static/image/success.svg" alt="alert"/>
<p></p>
</div>
</div>
@@ -142,7 +144,7 @@
<div class="row">
<div class="col-6">
<div class="form-wrapper">
<label for="letnik">Letnik</label>
<label for="letnik">Razred/Letnik</label>
<select id="letnik" name="letnik">
<option value="1" selected="selected">1</option>
<option value="2">2</option>
@@ -167,9 +169,9 @@
<label for="vrsta">Vrsta besedila</label>
<select id="vrsta" name="vrsta">
<option value="E" selected="selected">Esej ali spis (E)</option>
<option value="PB">Praktično besedilo (npr. vabila, prošnje ipd. pri pouku slovenščine), napisano za oceno (PB)</option>
<option value="PB">Praktično besedilo, napisano za oceno - npr. vabilo, prošnja ali podobno (PE)</option>
<option value="T">Šolski test (T)</option>
<option value="R">Delo v razredu, ne za oceno (vtipkajte besedilo vrsto) (R)</option>
<option value="R">Delo v razredu, ne za oceno (vtipkajte besedilno vrsto) (R)</option>
</select>
</div>
</div>
@@ -271,7 +273,7 @@
<!--{{ dropzone.load_js() }}-->
<script src="../static/dropzone.js"></script>
<script src="{{ROUTE_PREFIX}}/static/dropzone.js"></script>
<script>
/////////////////////////
// Dropzone //
@@ -340,7 +342,7 @@
Dropzone.options.myDropzone = { // The camelized version of the ID of the form element
url: "../upload",
url: "{{ROUTE_PREFIX}}/upload",
autoProcessQueue: false,
uploadMultiple: true,
parallelUploads: 20,

View File

@@ -3,23 +3,25 @@
<head>
<meta charset="UTF-8">
<title>Portal za oddajanje besedil</title>
<link rel="stylesheet" href="../static/css/header.css" type="text/css">
<link rel="stylesheet" href="../static/css/form.css" type="text/css">
<link rel="stylesheet" href="../static/css/simple-grid.css" type="text/css">
<link rel="stylesheet" href="../static/css/contracts.css" type="text/css">
<link rel="icon" href="/static/favicon.ico" type="image/x-icon" >
<link rel="icon" href="static/favicon.svg" sizes="any" type="image/svg+xml">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/header.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/form.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/simple-grid.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/contracts.css" type="text/css">
</head>
<body>
<header>
<div class="logo"><a href="../"><img src="../static/image/logo-white.svg"/></a></div>
<div class="logo"><a href="{{ROUTE_PREFIX}}/"><img src="{{ROUTE_PREFIX}}/static/image/logo-white.svg"/></a></div>
<div class="menu-items">
<a href="../logout">Odjava</a>
{% if is_institution_coordinator %}
<a href="../manage-institution">Upravljaj z institucijo</a>
<a href="{{ROUTE_PREFIX}}/manage-institution">Upravljaj z ekipo</a>
{% endif %}
{% if is_admin %}
<a href="../admin">Administracijski meni</a>
<a href="{{ROUTE_PREFIX}}/admin">Administracijski meni</a>
{% endif %}
<a href="https://slovenscina.eu/" target="_blank">Več informacij</a>
<a href="https://slovenscina.eu/" target="_blank">Več informacij o sodelovanju</a>
<a href="{{ROUTE_PREFIX}}/logout">Odjava</a>
</div>
</header>
<div class="container" style="margin-top:8rem;">
@@ -29,9 +31,9 @@
<p class="subtitle"></p>
<div class="tab-nav">
<a href="../oddaja">Oddaja besedil</a>
<a href="../zgodovina">Zgodovina sodelovanja</a>
<a href="../pogodbe" class="active">Ekipa</a>
<a href="{{ROUTE_PREFIX}}/oddaja">Oddaja besedil</a>
<a href="{{ROUTE_PREFIX}}/zgodovina">Zgodovina sodelovanja</a>
<a href="{{ROUTE_PREFIX}}/pogodbe" class="active">Ekipa</a>
</div>
</div>
</div>
@@ -45,39 +47,47 @@
<h2>Sodelujoči</h2>
</div>
</div>-->
<div class="row">
<div class="col-12">
<h2>Število oddaj na uporabnika</h2>
</div>
</div>
<div class="row">
<div class="col-6">
<div id="my_dataviz">
<h2>Sodelujoči</h2>
{% for u in institution_users %}
<div class="team-item">
<div class="team-item-name">{{u.name}} <span class="team-item-role">{{role_map[u.id]}}</span></div>
</div>
{% endfor %}
<h2 style="margin-top:2rem">Zgodovina sprememb</h2>
{% for item in cooperation_history %}
<div class="team-item">
<div class="team-item-name">
{{item.name}}
<span class="team-item-role" style="margin-left:0">{{item.timestamp.strftime('%d.%m.%Y')}} postane {% if item.role == "coordinator"%}koordinator/-ka{% elif item.role == "mentor" %}mentor/-ica{% elif item.role == "other" %}druga vloga{% endif %}</span>
</div>
</div>
{% endfor %}
</div>
<div class="col-6">
<div id="my_dataviz_title">
<h2>Število oddaj na uporabnika</h2>
<div id="my_dataviz"></div>
</div>
<div id="my_dataviz__region_title">
<h2>Število vseh oddaj po regijah</h2>
<div id="my_dataviz_region">
</div>
<div>
<div style="display:inline-block;width:12px;height:12px;background:#006CB7"></div>
<p style="display:inline-block">Osnovne šole</p>
<div style="margin-left:32px;display:inline-block;width:12px;height:12px;background:#B86D00"></div>
<p style="display:inline-block">Srednje šole</p>
</div>
</div>
</div>
</div>
{% set vars = {'prev_schoolyear': ''} %}
{% for item in cooperation_history %}
{% if item.school_year != vars.prev_schoolyear %}
<div class="row">
<div class="col-12">
<h2>Šolsko leto {{item.school_year}}</h2>
</div>
</div>
{% if vars.update({'prev_schoolyear': item.school_year}) %} {% endif %}
{% endif %}
<div class="row">
<div class="col-6">
<div class="team-item">
<div class="team-item-name">{{item.name}} <span class="team-item-role">{{item.badge_text}}</span></div>
</div>
</div>
</div>
{% endfor %}
</div>
@@ -94,17 +104,19 @@
#my_dataviz path.domain{
visibility:hidden;
}
#my_dataviz_region .tick line{
visibility:hidden;
}
#my_dataviz_region path.domain{
visibility:hidden;
}
</style>
<script>
// set the dimensions and margins of the graph
// append the svg object to the body of the page
var data;
// Parse the Data
d3.json("/topuploads-institution/{{institution_id}}").then(function(jsondata) {
if(Object.keys(jsondata).length < 1) {
document.getElementById("my_dataviz_title").remove();
return;
}
data = [];
@@ -131,9 +143,10 @@
var x = d3.scaleLinear()
.domain([0,d3.max(data, function (d) { return d.value})])
.range([ 0, width]);
svg.append("g")
.attr("transform", "translate(0," + height + ")")
.call(d3.axisBottom(x))
.call(d3.axisBottom(x)/*.ticks(5)*/)
.selectAll("text")
.style("text-anchor", "center");
@@ -159,10 +172,77 @@
.attr("width", function(d) { return x(d.value); })
.attr("height", 32 )
.attr("fill", "#006CB7");
})
</script>
<script>
var data;
// Parse the Data
d3.json("/uploadstats-per-region").then(function(jsondata) {
data = [];
console.log(Object.keys(jsondata).length);
var margin = {top: 20, right: 0, bottom: 40, left: 0};
var width = document.getElementById("my_dataviz_region").clientWidth - margin.left - margin.right;
var height = Object.keys(jsondata).length * 56;
var svg = d3.select("#my_dataviz_region")
.append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.style("overflow","visible")
.append("g")
.attr("transform",
"translate(" + margin.left + "," + margin.top + ")");
for(var key in jsondata) {
data.push({'name': key, 'value':jsondata[key]});
}
console.log(data);
// Add X axis
var x = d3.scaleLinear()
.domain([0,d3.max(data, function (d) { return Math.max(...d.value)})])
.range([ 0, width]);
svg.append("g")
.attr("transform", "translate(0," + height + ")")
.call(d3.axisBottom(x))
.selectAll("text")
.style("text-anchor", "center");
// Y axis
var y = d3.scaleBand()
.range([ 0, data.length*56 ])
.domain(data.map(function(d) { return d.name; }))
.padding(0);
svg.append("g")
.call(d3.axisLeft(y))
.selectAll("text")
.style("text-anchor", "start")
.style("font-size", "14px")
.attr("transform", "translate(8,-36)");
//Bars
svg.selectAll("myRect")
.data(data)
.enter()
.append("rect")
.attr("x", x(0) )
.attr("y", function(d) { return y(d.name); })
.attr("width", function(d) { return x(d.value[0]); })
.attr("height", 16 )
.attr("fill", "#006CB7");
svg.selectAll("myRect")
.data(data)
.enter()
.append("rect")
.attr("x", x(0) )
.attr("y", function(d) { return y(d.name); })
.attr("width", function(d) { return x(d.value[1]); })
.attr("height", 16 )
.attr("transform", "translate(0,16)")
.attr("fill", "#B86D00");
})
</script>

View File

@@ -3,15 +3,17 @@
<head>
<meta charset="UTF-8">
<title>Portal ŠOLAR</title>
<link rel="stylesheet" href="../static/css/login-styles.css" type="text/css">
<link rel="stylesheet" href="../static/css/utils.css" type="text/css">
<link rel="icon" href="/static/favicon.ico" type="image/x-icon" >
<link rel="icon" href="static/favicon.svg" sizes="any" type="image/svg+xml">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/login-styles.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/utils.css" type="text/css">
</head>
<body>
<div class="background">
<div class="panel login-panel">
<div class="panel-logo">
<img src="../static/image/logo.svg" alt="logo"/>
<img src="{{ROUTE_PREFIX}}/static/image/logo.svg" alt="logo"/>
</div>
<h2 class="text-center">Portal za oddajanje besedil</h2>
<div class="line"></div>
@@ -23,29 +25,29 @@
{% with messages = get_flashed_messages() %}
{% if messages %}
<div class="alert">
<img src="../static/image/alert.svg" alt="alert"/>
<img src="{{ROUTE_PREFIX}}/static/image/alert.svg" alt="alert"/>
<p>{{ messages[0] }}</p>
</div>
{% endif %}
{% endwith %}
<div>
<form method="POST" action="../register" class="m-b-2">
<form method="POST" action="{{ROUTE_PREFIX}}/register" class="m-b-2">
<div class="input-wrapper">
<img src="../static/image/user.svg" alt="user" class="input-icon"/>
<img src="{{ROUTE_PREFIX}}/static/image/user.svg" alt="user" class="input-icon"/>
<div class="input-floating-label">
<label>Ime in priimek</label>
<input type="name" name="name" autofocus="">
</div>
</div>
<div class="input-wrapper">
<img src="../static/image/user.svg" alt="user" class="input-icon"/>
<img src="{{ROUTE_PREFIX}}/static/image/user.svg" alt="user" class="input-icon"/>
<div class="input-floating-label">
<label>Email</label>
<input type="email" name="email">
</div>
</div>
<div class="input-wrapper">
<img src="../static/image/password.svg" alt="user" class="input-icon"/>
<img src="{{ROUTE_PREFIX}}/static/image/password.svg" alt="user" class="input-icon"/>
<div class="input-floating-label">
<label>Geslo</label>
<input type="password" name="password">
@@ -53,14 +55,14 @@
</div>
</div>
<div class="input-wrapper">
<img src="../static/image/user.svg" alt="user" class="input-icon"/>
<img src="{{ROUTE_PREFIX}}/static/image/user.svg" alt="user" class="input-icon"/>
<div class="input-floating-label">
<label>Naziv institucije</label>
<input type="institution" name="institution">
</div>
</div>
<div class="input-wrapper">
<img src="../static/image/password.svg" alt="user" class="input-icon"/>
<img src="{{ROUTE_PREFIX}}/static/image/password.svg" alt="user" class="input-icon"/>
<div class="input-floating-label">
<label>Vloga v instituciji</label>
<select id="role" name="role" >
@@ -75,8 +77,8 @@
</div>
<div class="back-to-login">
<img src="../static/image/chevron-left.svg"/>
<a href="../login">Nazaj na prijavo</a>
<img src="{{ROUTE_PREFIX}}/static/image/chevron-left.svg"/>
<a href="{{ROUTE_PREFIX}}/login">Nazaj na prijavo</a>
</div>

View File

@@ -3,20 +3,22 @@
<head>
<meta charset="UTF-8">
<title>Portal ŠOLAR</title>
<link rel="stylesheet" href="../static/css/login-styles.css" type="text/css">
<link rel="stylesheet" href="../static/css/utils.css" type="text/css">
<link rel="icon" href="/static/favicon.ico" type="image/x-icon" >
<link rel="icon" href="static/favicon.svg" sizes="any" type="image/svg+xml">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/login-styles.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/utils.css" type="text/css">
</head>
<body>
<div class="background">
<div class="panel login-panel">
<div class="panel-logo">
<img src="../static/image/logo.svg" alt="logo"/>
<img src="{{ROUTE_PREFIX}}/static/image/logo.svg" alt="logo"/>
</div>
<h1 class="m-b-3">Ponastavitev gesla - ŠOLAR</h1>
<div>
<form method="POST" action="" class="m-b-2">
<div class="input-wrapper">
<img src="../static/image/password.svg" alt="user" class="input-icon"/>
<img src="{{ROUTE_PREFIX}}/static/image/password.svg" alt="user" class="input-icon"/>
<div class="input-floating-label">
<label>Novo geslo</label>
<input type="password" name="new_password">
@@ -29,7 +31,7 @@
{% with messages = get_flashed_messages() %}
{% if messages %}
<div class="alert">
<img src="../static/image/alert.svg" alt="alert"/>
<img src="{{ROUTE_PREFIX}}/static/image/alert.svg" alt="alert"/>
<p>{{ messages[0] }}</p>
</div>
{% endif %}

View File

@@ -3,25 +3,27 @@
<head>
<meta charset="UTF-8">
<title>Portal za oddajanje besedil</title>
<!--<link rel="stylesheet" href="../static/style.css" type="text/css">-->
<script src="../static/chart.js"></script>
<link rel="stylesheet" href="../static/css/header.css" type="text/css">
<link rel="stylesheet" href="../static/css/form.css" type="text/css">
<link rel="stylesheet" href="../static/css/simple-grid.css" type="text/css">
<link rel="stylesheet" href="../static/css/history.css" type="text/css">
<!--<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/style.css" type="text/css">-->
<script src="{{ROUTE_PREFIX}}/static/chart.js"></script>
<link rel="icon" href="/static/favicon.ico" type="image/x-icon" >
<link rel="icon" href="static/favicon.svg" sizes="any" type="image/svg+xml">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/header.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/form.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/simple-grid.css" type="text/css">
<link rel="stylesheet" href="{{ROUTE_PREFIX}}/static/css/history.css" type="text/css">
</head>
<body>
<header>
<div class="logo"><a href="../"><img src="../static/image/logo-white.svg"/></a></div>
<div class="logo"><a href="{{ROUTE_PREFIX}}/"><img src="{{ROUTE_PREFIX}}/static/image/logo-white.svg"/></a></div>
<div class="menu-items">
<a href="../logout">Odjava</a>
{% if is_institution_coordinator %}
<a href="../manage-institution">Upravljaj z institucijo</a>
<a href="{{ROUTE_PREFIX}}/manage-institution">Upravljaj z ekipo</a>
{% endif %}
{% if is_admin %}
<a href="../admin">Administracijski meni</a>
<a href="{{ROUTE_PREFIX}}/admin">Administracijski meni</a>
{% endif %}
<a href="https://slovenscina.eu/" target="_blank">Več informacij</a>
<a href="https://slovenscina.eu/" target="_blank">Več informacij o sodelovanju</a>
<a href="{{ROUTE_PREFIX}}/logout">Odjava</a>
</div>
</header>
<div class="container" style="margin-top:8rem;">
@@ -32,9 +34,9 @@
<div class="tab-nav">
<a href="../oddaja">Oddaja besedil</a>
<a href="../zgodovina" class="active">Zgodovina sodelovanja</a>
<a href="../pogodbe">Ekipa</a>
<a href="{{ROUTE_PREFIX}}/oddaja">Oddaja besedil</a>
<a href="{{ROUTE_PREFIX}}/zgodovina" class="active">Zgodovina sodelovanja</a>
<a href="{{ROUTE_PREFIX}}/pogodbe">Ekipa</a>
</div>
</div>
</div>
@@ -88,7 +90,13 @@
}%}
{% if upload_history|length == 0 %}
<div class="row">
<div class="col-6">
<p>Zgodovina sodelovanja je trenutno še prazna.</p>
</div>
</div>
{% endif %}
{% for item in upload_history %}
{% set item_values = [] %}
{% if institution_names[loop.index - 1] %}
@@ -127,7 +135,7 @@
<div class="history-item-date">Dodano {{ item.timestamp.strftime('%d. %m. %Y') }}</div>
<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-chevron"><img src="../static/image/chevron-down.svg"/></div>
<div class="history-item-chevron"><img src="{{ROUTE_PREFIX}}/static/image/chevron-down.svg"/></div>
<div class="history-item-desc">
{{ item_values | join(" | ") |truncate(120) }}
</div>
@@ -144,7 +152,7 @@
{% if item.upload_file_names != None %}
{% for f_name in item.upload_file_names %}
<div class="file-item">
<div class="file-icon"><img src="../static/image/file.svg"/></div>
<div class="file-icon"><img src="{{ROUTE_PREFIX}}/static/image/file.svg"/></div>
<a href="getuploadfile/{{item.id}}/{{item.upload_file_hashes[loop.index - 1]}}" class="file-name" {% if item.upload_file_codes != None %}download="{{item.upload_file_codes[loop.index - 1]}}.{{f_name.split('.')[1]}}"{%endif%}>
{% if item.upload_file_codes != None %}
{{item.upload_file_codes[loop.index - 1]}}.{{f_name.split('.')[1]}}
@@ -161,7 +169,7 @@
{% else %}
{% for f_hash in item.upload_file_hashes %}
<div class="file-item">
<div class="file-icon"><img src="../static/image/file.svg"/></div>
<div class="file-icon"><img src="{{ROUTE_PREFIX}}/static/image/file.svg"/></div>
<a href="getuploadfile/{{item.id}}/{{f_hash}}" class="file-name">{{f_hash}}</a>
</div>
{% endfor %}