Compare commits
14 Commits
2021-12-15
...
2022-01-23
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
313f95fac8 | ||
|
|
20b2273623 | ||
|
|
6cd69c5d4b | ||
|
|
2bbeaacb76 | ||
|
|
9f352da395 | ||
|
|
fe1285d455 | ||
|
|
31c2d294fe | ||
|
|
48230b623a | ||
|
|
6c1fdc06fc | ||
|
|
956c307b6c | ||
|
|
743ebba052 | ||
|
|
13a5fdd6f7 | ||
|
|
7c79891983 | ||
|
|
9e93d41bc3 |
35
app.py
35
app.py
@@ -26,6 +26,7 @@ config = configparser.ConfigParser()
|
|||||||
config.read('config.ini')
|
config.read('config.ini')
|
||||||
config = config['DEFAULT']
|
config = config['DEFAULT']
|
||||||
|
|
||||||
|
SERVER_NAME = config['SERVER_NAME']
|
||||||
MAIL_HOST = config['MAIL_HOST']
|
MAIL_HOST = config['MAIL_HOST']
|
||||||
MAIL_LOGIN = config['MAIL_LOGIN']
|
MAIL_LOGIN = config['MAIL_LOGIN']
|
||||||
MAIL_PASS = config['MAIL_PASS']
|
MAIL_PASS = config['MAIL_PASS']
|
||||||
@@ -47,6 +48,8 @@ if not UPLOADS_DIR.exists:
|
|||||||
UPLOADS_DIR.mkdir(parents=True)
|
UPLOADS_DIR.mkdir(parents=True)
|
||||||
|
|
||||||
# Override configs with environment variables, if set
|
# Override configs with environment variables, if set
|
||||||
|
if 'PORTALDS4DS1_SERVER_NAME' in os.environ:
|
||||||
|
SERVER_NAME = os.environ['PORTALDS4DS1_SERVER_NAME']
|
||||||
if 'PORTALDS4DS1_MAIL_HOST' in os.environ:
|
if 'PORTALDS4DS1_MAIL_HOST' in os.environ:
|
||||||
MAIL_HOST = os.environ['PORTALDS4DS1_MAIL_HOST']
|
MAIL_HOST = os.environ['PORTALDS4DS1_MAIL_HOST']
|
||||||
if 'PORTALDS4DS1_MAIL_LOGIN' in os.environ:
|
if 'PORTALDS4DS1_MAIL_LOGIN' in os.environ:
|
||||||
@@ -80,6 +83,7 @@ if 'PORTALDS4DS1_SQL_CONN_STR' in os.environ:
|
|||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
app.config.update(
|
app.config.update(
|
||||||
|
SERVER_NAME = SERVER_NAME,
|
||||||
SECRET_KEY = APP_SECRET_KEY,
|
SECRET_KEY = APP_SECRET_KEY,
|
||||||
UPLOADED_PATH = UPLOADS_DIR,
|
UPLOADED_PATH = UPLOADS_DIR,
|
||||||
MAX_CONTENT_LENGTH = MAX_UPLOAD_SIZE,
|
MAX_CONTENT_LENGTH = MAX_UPLOAD_SIZE,
|
||||||
@@ -99,6 +103,7 @@ manager.add_command('db', MigrateCommand)
|
|||||||
dropzone = Dropzone(app)
|
dropzone = Dropzone(app)
|
||||||
|
|
||||||
upload_handler_solar = portal.solar.UploadHandlerSolar(
|
upload_handler_solar = portal.solar.UploadHandlerSolar(
|
||||||
|
SERVER_NAME = SERVER_NAME,
|
||||||
UPLOADS_DIR=UPLOADS_DIR,
|
UPLOADS_DIR=UPLOADS_DIR,
|
||||||
MAIL_HOST=MAIL_HOST,
|
MAIL_HOST=MAIL_HOST,
|
||||||
MAIL_LOGIN=MAIL_LOGIN,
|
MAIL_LOGIN=MAIL_LOGIN,
|
||||||
@@ -204,7 +209,7 @@ def solar_register_post():
|
|||||||
if not password:
|
if not password:
|
||||||
flash('Prazno polje za geslo.')
|
flash('Prazno polje za geslo.')
|
||||||
return redirect('/register')
|
return redirect('/register')
|
||||||
if len(password) > 8:
|
if len(password) < 8:
|
||||||
flash('Geslo mora biti vsaj 8 znakov dolgo.')
|
flash('Geslo mora biti vsaj 8 znakov dolgo.')
|
||||||
return redirect('/register')
|
return redirect('/register')
|
||||||
if len(password) > 100:
|
if len(password) > 100:
|
||||||
@@ -423,7 +428,7 @@ def solar_sendresetpass():
|
|||||||
|
|
||||||
portal.solar.send_resetpass_mail(email, upload_handler_solar.config)
|
portal.solar.send_resetpass_mail(email, upload_handler_solar.config)
|
||||||
|
|
||||||
flash('Povezava za ponastavitev gesla je bila poslana na vpisan email naslov.')
|
flash('Povezava za ponastavitev gesla je bila poslana na vpisani e-naslov.')
|
||||||
return redirect(redirect_url())
|
return redirect(redirect_url())
|
||||||
|
|
||||||
|
|
||||||
@@ -455,10 +460,22 @@ def solar_resetpass_post(token):
|
|||||||
|
|
||||||
@app.route('/topuploads')
|
@app.route('/topuploads')
|
||||||
@login_required
|
@login_required
|
||||||
def solar_topuploads_srednje():
|
def solar_topuploads():
|
||||||
return jsonify(portal.solar.get_top_uploading_institutions())
|
return jsonify(portal.solar.get_top_uploading_institutions())
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/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>')
|
||||||
|
@login_required
|
||||||
|
def solar_uploadstats_institution(institution_id):
|
||||||
|
return jsonify(portal.solar.get_institution_upload_stats(institution_id))
|
||||||
|
|
||||||
|
|
||||||
@app.route('/deluser', methods=['POST'])
|
@app.route('/deluser', methods=['POST'])
|
||||||
@login_required
|
@login_required
|
||||||
def solar_del_user():
|
def solar_del_user():
|
||||||
@@ -755,19 +772,23 @@ def get_upload_file(upload_id, file_hash):
|
|||||||
if file_hash not in upload_obj.upload_file_hashes:
|
if file_hash not in upload_obj.upload_file_hashes:
|
||||||
return '', 404
|
return '', 404
|
||||||
|
|
||||||
|
|
||||||
prefix = file_hash[:2]
|
prefix = file_hash[:2]
|
||||||
suffix = file_hash[2:]
|
suffix = file_hash[2:]
|
||||||
safe_path = safe_join(str(upload_handler_solar.get_uploads_subdir('files')), prefix, suffix)
|
safe_path = safe_join(str(upload_handler_solar.get_uploads_subdir('files')), prefix, suffix)
|
||||||
f_name = os.listdir(safe_path)[0]
|
|
||||||
|
|
||||||
|
f_name = os.listdir(safe_path)[0]
|
||||||
safe_path = safe_join(safe_path, f_name)
|
safe_path = safe_join(safe_path, f_name)
|
||||||
|
|
||||||
|
f_suffix = f_name.split('.')[-1]
|
||||||
|
f_dlname = upload_obj.upload_file_codes[file_hashes.index(file_hash)]
|
||||||
|
if f_suffix in portal.solar.UploadHandlerSolar.ENABLED_FILETYPES:
|
||||||
|
f_dlname += '.' + f_suffix
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return send_file(safe_path, attachment_filename=f_name, as_attachment=True)
|
return send_file(safe_path, attachment_filename=f_dlname, as_attachment=True)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
return '', 404
|
return '', 404
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(debug=True)
|
app.run(debug=True)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
[DEFAULT]
|
[DEFAULT]
|
||||||
|
SERVER_NAME=localhost:5000
|
||||||
SQL_CONN_STR=postgresql://portal:randompass123@localhost/portal
|
SQL_CONN_STR=postgresql://portal:randompass123@localhost/portal
|
||||||
MAIL_HOST=posta.cjvt.si
|
MAIL_HOST=posta.cjvt.si
|
||||||
MAIL_LOGIN=oddaja-besedil@cjvt.si
|
MAIL_LOGIN=oddaja-besedil@cjvt.si
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ services:
|
|||||||
build: .
|
build: .
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
|
- PORTALDS4DS1_SERVER_NAME=localhost:5000
|
||||||
- PORTALDS4DS1_SQL_CONN_STR=postgresql://portal:randompass123@db/portal
|
- PORTALDS4DS1_SQL_CONN_STR=postgresql://portal:randompass123@db/portal
|
||||||
- PORTALDS4DS1_MAIL_HOST=posta.cjvt.si
|
- PORTALDS4DS1_MAIL_HOST=posta.cjvt.si
|
||||||
- PORTALDS4DS1_MAIL_LOGIN=oddaja-besedil@cjvt.si
|
- PORTALDS4DS1_MAIL_LOGIN=oddaja-besedil@cjvt.si
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
"""Added upload file codes column.
|
||||||
|
|
||||||
|
Revision ID: c7bb822adf9f
|
||||||
|
Revises: 0d9dd68fd94b
|
||||||
|
Create Date: 2021-12-20 09:00:57.208921
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = 'c7bb822adf9f'
|
||||||
|
down_revision = '0d9dd68fd94b'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.add_column('upload_solar', sa.Column('region', sa.String(), nullable=True))
|
||||||
|
op.add_column('upload_solar', sa.Column('upload_file_codes', sa.ARRAY(sa.String()), nullable=True))
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
op.drop_column('upload_solar', 'upload_file_codes')
|
||||||
|
op.drop_column('upload_solar', 'region')
|
||||||
|
# ### end Alembic commands ###
|
||||||
@@ -19,6 +19,7 @@ class UploadSolar(db.Model):
|
|||||||
institution = db.Column(db.Integer, sqlalchemy.ForeignKey('institution.id'), nullable=True)
|
institution = db.Column(db.Integer, sqlalchemy.ForeignKey('institution.id'), nullable=True)
|
||||||
upload_hash = db.Column(db.String, nullable=False)
|
upload_hash = db.Column(db.String, nullable=False)
|
||||||
timestamp = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
timestamp = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
||||||
|
region = db.Column(db.String, nullable=True)
|
||||||
program = db.Column(db.String, nullable=True)
|
program = db.Column(db.String, nullable=True)
|
||||||
subject = db.Column(db.String, nullable=True)
|
subject = db.Column(db.String, nullable=True)
|
||||||
subject_custom = db.Column(db.String, nullable=True)
|
subject_custom = db.Column(db.String, nullable=True)
|
||||||
@@ -29,6 +30,7 @@ class UploadSolar(db.Model):
|
|||||||
grammar_corrections = db.Column(db.String, nullable=True)
|
grammar_corrections = db.Column(db.String, nullable=True)
|
||||||
upload_file_hashes = db.Column(sqlalchemy.types.ARRAY(db.String), nullable=True)
|
upload_file_hashes = db.Column(sqlalchemy.types.ARRAY(db.String), nullable=True)
|
||||||
upload_file_names = db.Column(sqlalchemy.types.ARRAY(db.String), nullable=True)
|
upload_file_names = db.Column(sqlalchemy.types.ARRAY(db.String), nullable=True)
|
||||||
|
upload_file_codes = db.Column(sqlalchemy.types.ARRAY(db.String), nullable=True)
|
||||||
|
|
||||||
|
|
||||||
class ContractsSolar(db.Model):
|
class ContractsSolar(db.Model):
|
||||||
|
|||||||
125
portal/solar.py
125
portal/solar.py
@@ -6,15 +6,10 @@ import traceback
|
|||||||
import ssl
|
import ssl
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from sqlalchemy import desc
|
from sqlalchemy import desc
|
||||||
from collections import Counter
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import imaplib
|
|
||||||
from smtplib import SMTP_SSL
|
from smtplib import SMTP_SSL
|
||||||
|
|
||||||
import email
|
|
||||||
from email import encoders
|
|
||||||
from email.mime.base import MIMEBase
|
|
||||||
from email.mime.multipart import MIMEMultipart
|
from email.mime.multipart import MIMEMultipart
|
||||||
from email.mime.text import MIMEText
|
from email.mime.text import MIMEText
|
||||||
from email.mime.application import MIMEApplication
|
from email.mime.application import MIMEApplication
|
||||||
@@ -30,9 +25,9 @@ from . model import *
|
|||||||
|
|
||||||
|
|
||||||
VALID_PROGRAMS = {'OS', 'SSG', 'MGP', 'ZG', 'NPI', 'SPI', 'SSI', 'PTI'}
|
VALID_PROGRAMS = {'OS', 'SSG', 'MGP', 'ZG', 'NPI', 'SPI', 'SSI', 'PTI'}
|
||||||
VALID_SUBJECTS = {'slo', 'drug-jez', 'drug-druz', 'drug-narav', 'drug-strok', 'drug-izb'}
|
VALID_SUBJECTS = {'SLO', 'DJP', 'DDP', 'DNP', 'DSP', 'DIP'}
|
||||||
VALID_TEXT_TYPES = {'esej-spis', 'prakticno', 'solski-test', 'delo-v-razredu'}
|
VALID_TEXT_TYPES = {'E', 'PB', 'T', 'R'}
|
||||||
VALID_GRAMMAR_CORRECTIONS = {'popr-ne', 'brez-popr', 'popr-da'}
|
VALID_GRAMMAR_CORRECTIONS = {'DD', 'N', 'DN'}
|
||||||
VALID_REGIONS = {'CE', 'GO', 'KK', 'KP', 'KR', 'LJ', 'MB', 'MS', 'NM', 'PO', 'SG'}
|
VALID_REGIONS = {'CE', 'GO', 'KK', 'KP', 'KR', 'LJ', 'MB', 'MS', 'NM', 'PO', 'SG'}
|
||||||
|
|
||||||
#REGEX_EMAIL = re.compile('^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$')
|
#REGEX_EMAIL = re.compile('^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$')
|
||||||
@@ -157,21 +152,45 @@ class UploadHandlerSolar():
|
|||||||
|
|
||||||
institution_id = get_user_institution(user_id).id
|
institution_id = get_user_institution(user_id).id
|
||||||
|
|
||||||
|
region = form_data['regija']
|
||||||
|
program = form_data['program']
|
||||||
|
subject = form_data['predmet'],
|
||||||
|
subject_custom = form_data['predmet-custom'],
|
||||||
|
grade = form_data['letnik'],
|
||||||
|
text_type = form_data['vrsta'],
|
||||||
|
text_type_custom = form_data['vrsta-custom'],
|
||||||
|
school_year = form_data['solsko-leto'],
|
||||||
|
grammar_corrections = form_data['jezikovni-popravki'],
|
||||||
|
upload_file_codes = []
|
||||||
|
for i in range(len(sorted_file_items)):
|
||||||
|
file_code = '{}_{}_{}_{}_{}_{}_{}_{}'.format(
|
||||||
|
region,
|
||||||
|
program,
|
||||||
|
subject[0],
|
||||||
|
grade[0],
|
||||||
|
text_type[0],
|
||||||
|
school_year[0],
|
||||||
|
grammar_corrections[0],
|
||||||
|
i)
|
||||||
|
upload_file_codes.append(file_code)
|
||||||
|
|
||||||
model_obj = UploadSolar(
|
model_obj = UploadSolar(
|
||||||
upload_user = user_id,
|
upload_user = user_id,
|
||||||
institution = institution_id,
|
institution = institution_id,
|
||||||
upload_hash=upload_metadata['upload_id'],
|
upload_hash=upload_metadata['upload_id'],
|
||||||
timestamp=timestamp,
|
timestamp=timestamp,
|
||||||
program=form_data['program'],
|
region=region,
|
||||||
subject=form_data['predmet'],
|
program=program,
|
||||||
subject_custom=form_data['predmet-custom'],
|
subject=subject,
|
||||||
grade=form_data['letnik'],
|
subject_custom=subject_custom,
|
||||||
text_type=form_data['vrsta'],
|
grade=grade,
|
||||||
text_type_custom=form_data['vrsta-custom'],
|
text_type=text_type,
|
||||||
school_year=form_data['solsko-leto'],
|
text_type_custom=text_type_custom,
|
||||||
grammar_corrections=form_data['jezikovni-popravki'],
|
school_year=school_year,
|
||||||
|
grammar_corrections=grammar_corrections,
|
||||||
upload_file_hashes=[x[1] for x in sorted_file_items],
|
upload_file_hashes=[x[1] for x in sorted_file_items],
|
||||||
upload_file_names=[x[0] for x in sorted_file_items],
|
upload_file_names=[x[0] for x in sorted_file_items],
|
||||||
|
upload_file_codes=upload_file_codes,
|
||||||
)
|
)
|
||||||
UploadHandlerSolar.store_model(model_obj)
|
UploadHandlerSolar.store_model(model_obj)
|
||||||
|
|
||||||
@@ -281,6 +300,8 @@ class UploadHandlerSolar():
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def check_form(form):
|
def check_form(form):
|
||||||
|
logging.info(form)
|
||||||
|
region = form['regija']
|
||||||
program = form['program']
|
program = form['program']
|
||||||
predmet = form['predmet']
|
predmet = form['predmet']
|
||||||
letnik = int(form['letnik'])
|
letnik = int(form['letnik'])
|
||||||
@@ -288,6 +309,8 @@ class UploadHandlerSolar():
|
|||||||
solsko_leto = form['solsko-leto']
|
solsko_leto = form['solsko-leto']
|
||||||
jezikovni_popravki = form['jezikovni-popravki']
|
jezikovni_popravki = form['jezikovni-popravki']
|
||||||
|
|
||||||
|
if region not in VALID_REGIONS:
|
||||||
|
return 'Invalid region "{}"'.format(region)
|
||||||
if program not in VALID_PROGRAMS:
|
if program not in VALID_PROGRAMS:
|
||||||
return 'Invalid program "{}"'.format(program)
|
return 'Invalid program "{}"'.format(program)
|
||||||
if predmet not in VALID_SUBJECTS:
|
if predmet not in VALID_SUBJECTS:
|
||||||
@@ -435,6 +458,41 @@ def get_top_uploading_institutions():
|
|||||||
return dict(sorted(res.items(), key=lambda x:x[1], reverse=True))
|
return dict(sorted(res.items(), key=lambda x:x[1], reverse=True))
|
||||||
|
|
||||||
|
|
||||||
|
def get_top_uploading_users(institution_id):
|
||||||
|
res = dict()
|
||||||
|
users = get_all_active_institution_users(institution_id)
|
||||||
|
for user in users:
|
||||||
|
uploads = UploadSolar.query.filter_by(upload_user=user.id).all()
|
||||||
|
for upload in uploads:
|
||||||
|
if user.name not in res:
|
||||||
|
res[user.name] = 0
|
||||||
|
res[user.name] += len(upload.upload_file_hashes)
|
||||||
|
if len(res) >= 5:
|
||||||
|
return dict(sorted(res.items(), key=lambda x:x[1], reverse=True)[:5])
|
||||||
|
return dict(sorted(res.items(), key=lambda x:x[1], reverse=True))
|
||||||
|
|
||||||
|
|
||||||
|
def get_institution_upload_stats(institution_id):
|
||||||
|
res = {
|
||||||
|
'region': [],
|
||||||
|
'program': [],
|
||||||
|
}
|
||||||
|
|
||||||
|
# Region
|
||||||
|
for region in VALID_REGIONS:
|
||||||
|
count = UploadSolar.query.filter_by(institution=institution_id, region=region).count()
|
||||||
|
res['region'].append((region, count))
|
||||||
|
res['region'] = sorted(res['region'], key=lambda x:x[1], reverse=True)
|
||||||
|
|
||||||
|
# Program
|
||||||
|
for program in VALID_PROGRAMS:
|
||||||
|
count = UploadSolar.query.filter_by(institution=institution_id, program=program).count()
|
||||||
|
res['program'].append((program, count))
|
||||||
|
res['program'] = sorted(res['program'], key=lambda x:x[1], reverse=True)
|
||||||
|
|
||||||
|
return res
|
||||||
|
|
||||||
|
|
||||||
def get_all_active_users():
|
def get_all_active_users():
|
||||||
# TODO: do filtering purely within an SQL query
|
# TODO: do filtering purely within an SQL query
|
||||||
res = []
|
res = []
|
||||||
@@ -444,8 +502,9 @@ def get_all_active_users():
|
|||||||
res.append(user)
|
res.append(user)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def update_upload_item(item_id, program, subject, subject_custom, grade, text_type, text_type_custom, school_year, grammar_corrections):
|
def update_upload_item(item_id, region, program, subject, subject_custom, grade, text_type, text_type_custom, school_year, grammar_corrections):
|
||||||
rowcount = db.session.query(UploadSolar).filter_by(id=item_id).update({
|
rowcount = db.session.query(UploadSolar).filter_by(id=item_id).update({
|
||||||
|
'region': region,
|
||||||
'program': program,
|
'program': program,
|
||||||
'subject': subject,
|
'subject': subject,
|
||||||
'subject_custom': subject_custom,
|
'subject_custom': subject_custom,
|
||||||
@@ -470,22 +529,18 @@ def get_institution_contract(institution_id):
|
|||||||
|
|
||||||
|
|
||||||
def get_institution_cooperation_history(institution_id):
|
def get_institution_cooperation_history(institution_id):
|
||||||
#return CooperationToken.query.join(UserCooperationTokenMapping,
|
return db.session.query(UserCooperationHistory.role,
|
||||||
# UserCooperationTokenMapping.cooperation_token == CooperationToken.id).filter(UserCooperationTokenMapping.user == user_id).all()
|
UserCooperationHistory.school_year,
|
||||||
#
|
UserCooperationHistory.badge_text,
|
||||||
res = dict()
|
RegisteredUser.name,
|
||||||
|
).select_from(
|
||||||
uch_rows = UserCooperationHistory.query.filter_by(institution=institution_id).order_by(UserCooperationHistory.school_year.desc()).all()
|
UserCooperationHistory,
|
||||||
for row in uch_rows:
|
).join(
|
||||||
if row.user not in res:
|
RegisteredUser,
|
||||||
res[row.user] = {
|
UserCooperationHistory.user == RegisteredUser.id,
|
||||||
'coordinator': [],
|
).filter(
|
||||||
'mentor': [],
|
UserCooperationHistory.institution == institution_id,
|
||||||
'other': []
|
).order_by(UserCooperationHistory.school_year.desc()).all()
|
||||||
}
|
|
||||||
res[row.user][row.role].append((row.school_year, row.badge_text))
|
|
||||||
|
|
||||||
return res
|
|
||||||
|
|
||||||
|
|
||||||
def get_cooperation_history():
|
def get_cooperation_history():
|
||||||
@@ -751,8 +806,7 @@ def send_resetpass_mail(email, config):
|
|||||||
body = '''
|
body = '''
|
||||||
Zahtevali ste ponastavitev gesla vašega uporabniškega računa.
|
Zahtevali ste ponastavitev gesla vašega uporabniškega računa.
|
||||||
|
|
||||||
Geslo lahko ponastavite na naslednji povezavi: https://zbiranje.slovenscina.eu/solar/resetpass/{}'''.format(jwt_token)
|
Geslo lahko ponastavite na naslednji povezavi: https://{}/resetpass/{}'''.format(config['SERVER_NAME'], jwt_token)
|
||||||
|
|
||||||
message = MIMEMultipart()
|
message = MIMEMultipart()
|
||||||
message['From'] = config['MAIL_LOGIN']
|
message['From'] = config['MAIL_LOGIN']
|
||||||
message['To'] = email
|
message['To'] = email
|
||||||
@@ -819,3 +873,4 @@ def send_user_activation_mail(user_id, config):
|
|||||||
except Exception:
|
except Exception:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -151,14 +151,8 @@ em {
|
|||||||
position: relative; }
|
position: relative; }
|
||||||
.team-item .team-item-name {
|
.team-item .team-item-name {
|
||||||
line-height: 3.25rem; }
|
line-height: 3.25rem; }
|
||||||
.team-item .team-item-collaborations {
|
.team-item .team-item-name .team-item-role {
|
||||||
position: absolute;
|
color: #848C90;
|
||||||
right: 1rem;
|
margin-left: 1rem; }
|
||||||
top: 0.5rem; }
|
|
||||||
.team-item .team-item-collaborations .team-item-years {
|
|
||||||
display: block;
|
|
||||||
text-transform: uppercase;
|
|
||||||
font-size: 0.625rem;
|
|
||||||
line-height: 0.75rem; }
|
|
||||||
|
|
||||||
/*# sourceMappingURL=contracts.css.map */
|
/*# sourceMappingURL=contracts.css.map */
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"version": 3,
|
"version": 3,
|
||||||
"mappings": "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",
|
"mappings": "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",
|
||||||
"sources": ["slovenscina-theme.scss","slovenscina-elements.scss","contracts.scss"],
|
"sources": ["slovenscina-theme.scss","slovenscina-elements.scss","contracts.scss"],
|
||||||
"names": [],
|
"names": [],
|
||||||
"file": "contracts.css"
|
"file": "contracts.css"
|
||||||
|
|||||||
@@ -42,16 +42,10 @@
|
|||||||
position:relative;
|
position:relative;
|
||||||
.team-item-name {
|
.team-item-name {
|
||||||
line-height:3.25rem;
|
line-height:3.25rem;
|
||||||
}
|
.team-item-role {
|
||||||
.team-item-collaborations {
|
color:$grey-dark;
|
||||||
position:absolute;
|
margin-left:1rem;
|
||||||
right:1rem;
|
|
||||||
top:0.5rem;
|
|
||||||
.team-item-years {
|
|
||||||
display:block;
|
|
||||||
text-transform: uppercase;
|
|
||||||
font-size: 0.625rem;
|
|
||||||
line-height: 0.75rem;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -121,7 +121,8 @@ em {
|
|||||||
padding: 1rem 1.5rem;
|
padding: 1rem 1.5rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
transition: max-height 1s ease-out;
|
transition: max-height 1s ease-out;
|
||||||
cursor: pointer; }
|
cursor: pointer;
|
||||||
|
overflow: hidden; }
|
||||||
.history-item .history-item-chevron {
|
.history-item .history-item-chevron {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 1rem;
|
bottom: 1rem;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"version": 3,
|
"version": 3,
|
||||||
"mappings": "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",
|
"mappings": "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",
|
||||||
"sources": ["slovenscina-theme.scss","slovenscina-elements.scss","history.scss"],
|
"sources": ["slovenscina-theme.scss","slovenscina-elements.scss","history.scss"],
|
||||||
"names": [],
|
"names": [],
|
||||||
"file": "history.css"
|
"file": "history.css"
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
position:relative;
|
position:relative;
|
||||||
transition: max-height 1s ease-out;
|
transition: max-height 1s ease-out;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
|
overflow:hidden;
|
||||||
.history-item-chevron {
|
.history-item-chevron {
|
||||||
position:absolute;
|
position:absolute;
|
||||||
bottom:1rem;
|
bottom:1rem;
|
||||||
|
|||||||
@@ -178,6 +178,8 @@ em {
|
|||||||
.input-wrapper .input-floating-label label {
|
.input-wrapper .input-floating-label label {
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
color: #46535B; }
|
color: #46535B; }
|
||||||
|
.input-wrapper .input-floating-label label.input-hint {
|
||||||
|
color: #848C90; }
|
||||||
|
|
||||||
.back-to-login {
|
.back-to-login {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"version": 3,
|
"version": 3,
|
||||||
"mappings": "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",
|
"mappings": "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",
|
||||||
"sources": ["slovenscina-theme.scss","slovenscina-elements.scss","login-styles.scss"],
|
"sources": ["slovenscina-theme.scss","slovenscina-elements.scss","login-styles.scss"],
|
||||||
"names": [],
|
"names": [],
|
||||||
"file": "login-styles.css"
|
"file": "login-styles.css"
|
||||||
|
|||||||
@@ -77,6 +77,9 @@
|
|||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
color: $black;
|
color: $black;
|
||||||
}
|
}
|
||||||
|
label.input-hint {
|
||||||
|
color:$grey-dark;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,14 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Portal ŠOLAR</title>
|
<title>Portal ŠOLAR</title>
|
||||||
<link rel="stylesheet" href="/static/css/login-styles.css" type="text/css">
|
<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="stylesheet" href="../static/css/utils.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="background">
|
<div class="background">
|
||||||
<div class="panel login-panel">
|
<div class="panel login-panel">
|
||||||
<div class="panel-logo">
|
<div class="panel-logo">
|
||||||
<img src="/static/image/logo.svg" alt="logo"/>
|
<img src="../static/image/logo.svg" alt="logo"/>
|
||||||
</div>
|
</div>
|
||||||
<h1 class="m-b-3">Pozabljeno geslo - ŠOLAR</h1>
|
<h1 class="m-b-3">Pozabljeno geslo - ŠOLAR</h1>
|
||||||
<div>
|
<div>
|
||||||
@@ -27,16 +27,16 @@
|
|||||||
</form>
|
</form>
|
||||||
{% with messages = get_flashed_messages() %}
|
{% with messages = get_flashed_messages() %}
|
||||||
{% if messages %}
|
{% if messages %}
|
||||||
<div class="alert">
|
<div class="alert alert-success">
|
||||||
<img src="../static/image/alert.svg" alt="alert"/>
|
<img src="../static/image/success.svg" alt="alert"/>
|
||||||
<p>{{ messages[0] }}</p>
|
<p>{{ messages[0] }}</p>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
|
|
||||||
<div class="back-to-login">
|
<div class="back-to-login">
|
||||||
<img src="/static/image/chevron-left.svg"/>
|
<img src="../static/image/chevron-left.svg"/>
|
||||||
<a href="/login">Nazaj na prijavo</a>
|
<a href="../login">Nazaj na prijavo</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,14 +3,14 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Portal ŠOLAR</title>
|
<title>Portal ŠOLAR</title>
|
||||||
<link rel="stylesheet" href="/static/css/login-styles.css" type="text/css">
|
<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="stylesheet" href="../static/css/utils.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="background">
|
<div class="background">
|
||||||
<div class="panel login-panel">
|
<div class="panel login-panel">
|
||||||
<div class="panel-logo">
|
<div class="panel-logo">
|
||||||
<img src="/static/image/logo.svg" alt="logo"/>
|
<img src="../static/image/logo.svg" alt="logo"/>
|
||||||
</div>
|
</div>
|
||||||
<h2 class="text-center">Portal za oddajanje besedil</h2>
|
<h2 class="text-center">Portal za oddajanje besedil</h2>
|
||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
@@ -21,10 +21,17 @@
|
|||||||
<h1 class="m-b-3">Prijava</h1>
|
<h1 class="m-b-3">Prijava</h1>
|
||||||
{% with messages = get_flashed_messages() %}
|
{% with messages = get_flashed_messages() %}
|
||||||
{% if messages %}
|
{% if messages %}
|
||||||
<div class="alert">
|
{% if "potrditev" in messages[0] or "uspešna" in messages[0] %}
|
||||||
<img src="/static/image/alert.svg" alt="alert"/>
|
<div class="alert alert-success">
|
||||||
<p>{{ messages[0] }}</p>
|
<img src="../static/image/success.svg" alt="alert"/>
|
||||||
</div>
|
<p>{{ messages[0] }}</p>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="alert">
|
||||||
|
<img src="../static/image/alert.svg" alt="alert"/>
|
||||||
|
<p>{{ messages[0] }}</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Upravljanje institucije - Šolar</title>
|
<title>Upravljanje institucije - Šolar</title>
|
||||||
<link rel="stylesheet" href="/static/css/header.css" type="text/css">
|
<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/form.css" type="text/css">
|
||||||
<link rel="stylesheet" href="/static/css/simple-grid.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="stylesheet" href="../static/css/manage-institution.css" type="text/css">
|
||||||
<style>
|
<style>
|
||||||
.tableFixHead {
|
.tableFixHead {
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<div class="logo"><a href="/"><img src="/static/image/logo-white.svg"/></a></div>
|
<div class="logo"><a href="../"><img src="../static/image/logo-white.svg"/></a></div>
|
||||||
<div class="menu-items">
|
<div class="menu-items">
|
||||||
<a href="../logout">Odjava</a>
|
<a href="../logout">Odjava</a>
|
||||||
{% if is_institution_coordinator %}
|
{% if is_institution_coordinator %}
|
||||||
|
|||||||
@@ -3,14 +3,14 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Portal za oddajanje besedil</title>
|
<title>Portal za oddajanje besedil</title>
|
||||||
<link rel="stylesheet" href="/static/css/header.css" type="text/css">
|
<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/form.css" type="text/css">
|
||||||
<link rel="stylesheet" href="/static/css/simple-grid.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="stylesheet" href="../static/css/utils.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<div class="logo"><a href="/"><img src="/static/image/logo-white.svg"/></a></div>
|
<div class="logo"><a href="../"><img src="../static/image/logo-white.svg"/></a></div>
|
||||||
<div class="menu-items">
|
<div class="menu-items">
|
||||||
<a href="../logout">Odjava</a>
|
<a href="../logout">Odjava</a>
|
||||||
{% if is_institution_coordinator %}
|
{% if is_institution_coordinator %}
|
||||||
@@ -26,13 +26,13 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<h1 class="title">Korpus Šolar</h1>
|
<h1 class="title">Korpus Šolar</h1>
|
||||||
<p class="subtitle">Prosimo, določite podatke o besedilih, ki jih želite oddati, in nato naložite besedila. Če oddajate besedila, ki so nastala v različnih razredih, se razlikujejo glede učiteljskih popravkov in podobno, jih oddajte v ločenih paketih.</p>
|
<p class="subtitle" style="width:60%">Prosimo, določite podatke o besedilih, ki jih želite oddati, in nato naložite besedila. Če oddajate besedila, ki so nastala v različnih razredih, se razlikujejo glede učiteljskih popravkov in podobno, jih oddajte v ločenih paketih.</p>
|
||||||
|
|
||||||
|
|
||||||
<div class="tab-nav">
|
<div class="tab-nav">
|
||||||
<a href="/oddaja" class="active">Oddaja besedil</a>
|
<a href="../oddaja" class="active">Oddaja besedil</a>
|
||||||
<a href="/zgodovina">Zgodovina sodelovanja</a>
|
<a href="../zgodovina">Zgodovina sodelovanja</a>
|
||||||
<a href="/pogodbe">Ekipa</a>
|
<a href="../pogodbe">Ekipa</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -43,21 +43,21 @@
|
|||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
{% if not institution %}
|
{% if not institution %}
|
||||||
<div class="alert">
|
<div class="alert">
|
||||||
<img src="/static/image/alert.svg" alt="alert"/>
|
<img src="../static/image/alert.svg" alt="alert"/>
|
||||||
<p>Niste član nobene institucije!</p>
|
<p>Niste član nobene institucije!</p>
|
||||||
</div>
|
</div>
|
||||||
{% elif not institution_contract %}
|
{% elif not institution_contract %}
|
||||||
<div class="alert">
|
<!--<div class="alert">
|
||||||
<img src="/static/image/alert.svg" alt="alert"/>
|
<img src="../static/image/alert.svg" alt="alert"/>
|
||||||
<p>Pogodba s šolo še ni naložena!</p>
|
<p>Pogodba s šolo še ni naložena!</p>
|
||||||
</div>
|
</div>-->
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="alert" id="error-message">
|
<div class="alert" id="error-message">
|
||||||
<img src="/static/image/alert.svg" alt="alert"/>
|
<img src="../static/image/alert.svg" alt="alert"/>
|
||||||
<p></p>
|
<p></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="alert alert-success" id="success-message">
|
<div class="alert alert-success" id="success-message">
|
||||||
<img src="/static/image/success.svg" alt="alert"/>
|
<img src="../static/image/success.svg" alt="alert"/>
|
||||||
<p></p>
|
<p></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -68,7 +68,30 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-wrapper">
|
<div class="form-wrapper">
|
||||||
<label>Program</label>
|
<label for="regija">Regija</label>
|
||||||
|
<select id="regija" name="regija">
|
||||||
|
<option value="CE" selected="selected">Celje (CE)</option>
|
||||||
|
<option value="GO">Nova Gorica (GO)</option>
|
||||||
|
<option value="KK">Krško (KK)</option>
|
||||||
|
<option value="KP">Koper (KP)</option>
|
||||||
|
<option value="KR">Kranj (KR)</option>
|
||||||
|
<option value="LJ">Ljubljana (LJ)</option>
|
||||||
|
<option value="MB">Maribor (MB)</option>
|
||||||
|
<option value="MS">Murska Sobota (MS)</option>
|
||||||
|
<option value="NM">Novo Mesto (NM)</option>
|
||||||
|
<option value="PO">Postojna (PO)</option>
|
||||||
|
<option value="SG">Slovenj Gradec (SG)</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<p></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-6">
|
||||||
|
<div class="form-wrapper">
|
||||||
|
<label for="program">Program</label>
|
||||||
<select id="program" name="program">
|
<select id="program" name="program">
|
||||||
<option value="OS" selected="selected">Osnovnošolski (OŠ)</option>
|
<option value="OS" selected="selected">Osnovnošolski (OŠ)</option>
|
||||||
<option value="SSG">Splošna in strokovna gimnazija (SGG)</option>
|
<option value="SSG">Splošna in strokovna gimnazija (SGG)</option>
|
||||||
@@ -77,7 +100,7 @@
|
|||||||
<option value="NPI">Nižje poklicno izobraževanje (NPI)</option>
|
<option value="NPI">Nižje poklicno izobraževanje (NPI)</option>
|
||||||
<option value="SPI">Srednje poklicno izobraževanje (SPI)</option>
|
<option value="SPI">Srednje poklicno izobraževanje (SPI)</option>
|
||||||
<option value="SSI">Srednje strokovno izobraževanje (SSI)</option>
|
<option value="SSI">Srednje strokovno izobraževanje (SSI)</option>
|
||||||
<option value="PTI">Poklicno-tehnično izobraževanje (PTI)</option>
|
<option value="PTI">Poklicno-tehniško izobraževanje (PTI)</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -90,12 +113,12 @@
|
|||||||
<div class="form-wrapper">
|
<div class="form-wrapper">
|
||||||
<label for="predmet">Predmet</label>
|
<label for="predmet">Predmet</label>
|
||||||
<select id="predmet" name="predmet">
|
<select id="predmet" name="predmet">
|
||||||
<option value="slo" selected="selected">Slovenščina</option>
|
<option value="SLO" selected="selected">Slovenščina (SLO)</option>
|
||||||
<option value="drug-jez">Drugi jezikoslovni predmeti</option>
|
<option value="DJP">Drugi jezikoslovni predmeti (vtipkajte ime predmeta) (DJP)</option>
|
||||||
<option value="drug-druz">Drugi družboslovni predmeti</option>
|
<option value="DDP">Drugi družboslovni predmeti (vtipkajte ime predmeta) (DDP)</option>
|
||||||
<option value="drug-narav">Drugi naravoslovni predmeti</option>
|
<option value="DNP">Drugi naravoslovni predmeti (vtipkajte ime predmeta) (DNP)</option>
|
||||||
<option value="drug-strok">Drugi strokovni predmeti</option>
|
<option value="DSP">Drugi strokovni predmeti (vtipkajte ime predmeta) (DSP)</option>
|
||||||
<option value="drug-izb">Drugi izbirni ali dodatni predmeti</option>
|
<option value="DIP">Drugi izbirni ali dodatni predmeti (vtipkajte ime predmeta) (DIP)</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -143,10 +166,10 @@
|
|||||||
<div class="form-wrapper" >
|
<div class="form-wrapper" >
|
||||||
<label for="vrsta">Vrsta besedila</label>
|
<label for="vrsta">Vrsta besedila</label>
|
||||||
<select id="vrsta" name="vrsta">
|
<select id="vrsta" name="vrsta">
|
||||||
<option value="esej-spis" selected="selected">Esej ali spis</option>
|
<option value="E" selected="selected">Esej ali spis (E)</option>
|
||||||
<option value="prakticno">Praktično besedilo (npr. vabila, prošnje ipd. pri pouku slovenščine), napisano za oceno</option>
|
<option value="PB">Praktično besedilo (npr. vabila, prošnje ipd. pri pouku slovenščine), napisano za oceno (PB)</option>
|
||||||
<option value="solski-test">Šolski test</option>
|
<option value="T">Šolski test (T)</option>
|
||||||
<option value="delo-v-razredu">Delo v razredu, ne za oceno</option>
|
<option value="R">Delo v razredu, ne za oceno (vtipkajte besedilo vrsto) (R)</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -187,9 +210,9 @@
|
|||||||
<div class="form-wrapper">
|
<div class="form-wrapper">
|
||||||
<label for="jezikovni-popravki">Jezikovni popravki</label>
|
<label for="jezikovni-popravki">Jezikovni popravki</label>
|
||||||
<select id="jezikovni-popravki" name="jezikovni-popravki">
|
<select id="jezikovni-popravki" name="jezikovni-popravki">
|
||||||
<option value="popr-ne" selected="selected">Besedilo vsebuje učiteljske popravke in strinjam se z njihovo vključitvijo v korpus</option>
|
<option value="DD" selected="selected">Besedilo vsebuje učiteljske popravke in strinjam se z njihovo vključitvijo v korpus. (DD)</option>
|
||||||
<option value="brez-popr">Besedilo ne vsebuje učiteljskih popravkov</option>
|
<option value="N">Besedilo ne vsebuje učiteljskih popravkov. (N)</option>
|
||||||
<option value="popr-da">Besedilo vsebuje učiteljske popravke in ne strinjam se z njihovo vključitvijo v korpus</option>
|
<option value="DN">Besedilo vsebuje učiteljske popravke in ne strinjam se z njihovo vključitvijo v korpus. (DN)</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -214,7 +237,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<p>Oddate lahko eno ali (hkrati) več besedil, ki ustrezajo izbranim podatkom. Sprejemljivi formati so: txt, doc, docx, pdf, jpg in png.</p>
|
<p>Oddate lahko eno ali (hkrati) več besedil, ki ustrezajo izbranim podatkom. Sprejemljivi formati so: txt, csv, pdf, doc, docx, xls, xlsx, ppt, pptx, jpg, jpeg, png.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -244,11 +267,11 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<br/><br/><br/><br/><br/><br/><br/>
|
||||||
|
|
||||||
|
|
||||||
<!--{{ dropzone.load_js() }}-->
|
<!--{{ dropzone.load_js() }}-->
|
||||||
<script src="/static/dropzone.js"></script>
|
<script src="../static/dropzone.js"></script>
|
||||||
<script>
|
<script>
|
||||||
/////////////////////////
|
/////////////////////////
|
||||||
// Dropzone //
|
// Dropzone //
|
||||||
@@ -295,7 +318,7 @@
|
|||||||
//onready
|
//onready
|
||||||
selectPredmet.addEventListener("change", function(e) {
|
selectPredmet.addEventListener("change", function(e) {
|
||||||
var predmetCustomBox = document.getElementById("predmet-custom-box").closest('.row');
|
var predmetCustomBox = document.getElementById("predmet-custom-box").closest('.row');
|
||||||
if (selectPredmet.value.startsWith("drug")) {
|
if (selectPredmet.value.startsWith("D")) {
|
||||||
predmetCustomBox.style.maxHeight = "150px";
|
predmetCustomBox.style.maxHeight = "150px";
|
||||||
} else {
|
} else {
|
||||||
predmetCustomBox.style.maxHeight = "0px";
|
predmetCustomBox.style.maxHeight = "0px";
|
||||||
@@ -304,7 +327,7 @@
|
|||||||
|
|
||||||
selectVrsta.addEventListener("change", function(e) {
|
selectVrsta.addEventListener("change", function(e) {
|
||||||
var vrstaCustomBox = document.getElementById("vrsta-custom-box").closest('.row');
|
var vrstaCustomBox = document.getElementById("vrsta-custom-box").closest('.row');
|
||||||
if (selectVrsta.value == "delo-v-razredu") {
|
if (selectVrsta.value == "R") {
|
||||||
vrstaCustomBox.style.maxHeight = "150px";
|
vrstaCustomBox.style.maxHeight = "150px";
|
||||||
} else {
|
} else {
|
||||||
vrstaCustomBox.style.maxHeight = "0px";
|
vrstaCustomBox.style.maxHeight = "0px";
|
||||||
@@ -324,7 +347,7 @@
|
|||||||
paramName: "file", // The name that will be used to transfer the file
|
paramName: "file", // The name that will be used to transfer the file
|
||||||
maxFilesize: 1000, // MB
|
maxFilesize: 1000, // MB
|
||||||
timeout: 5000000, // milliseconds
|
timeout: 5000000, // milliseconds
|
||||||
acceptedFiles: ".txt, .csv, .pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .jpg, .jpeg, .png, .mkv",
|
acceptedFiles: ".txt, .csv, .pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .jpg, .jpeg, .png",
|
||||||
maxFiles: 20,
|
maxFiles: 20,
|
||||||
previewsContainer: "#dropzone-previews",
|
previewsContainer: "#dropzone-previews",
|
||||||
dictDefaultMessage: "Kliknite to polje ali povlecite datoteke vanj.",
|
dictDefaultMessage: "Kliknite to polje ali povlecite datoteke vanj.",
|
||||||
@@ -351,6 +374,7 @@
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
|
||||||
// Check form validity.
|
// Check form validity.
|
||||||
|
var regija = form["regija"].value;
|
||||||
var program = form["program"].value;
|
var program = form["program"].value;
|
||||||
var predmet = form["predmet"].value;
|
var predmet = form["predmet"].value;
|
||||||
var predmetCustom = form["predmet-custom"].value;
|
var predmetCustom = form["predmet-custom"].value;
|
||||||
@@ -360,9 +384,9 @@
|
|||||||
var solskoLeto = form["solsko-leto"].value;
|
var solskoLeto = form["solsko-leto"].value;
|
||||||
var jezikovniPopravki = form["jezikovni-popravki"].value;
|
var jezikovniPopravki = form["jezikovni-popravki"].value;
|
||||||
|
|
||||||
if (predmet.startsWith("drug") && isEmptyOrSpaces(predmetCustom)) {
|
if (predmet.startsWith("D") && isEmptyOrSpaces(predmetCustom)) {
|
||||||
showError("Polje za predmet ne more biti prazno!");
|
showError("Polje za predmet ne more biti prazno!");
|
||||||
} else if (vrsta === "delo-v-razredu" && isEmptyOrSpaces(vrstaCustom)) {
|
} else if (vrsta === "R" && isEmptyOrSpaces(vrstaCustom)) {
|
||||||
showError("Polje za vrsto besedila ne more biti prazno!");
|
showError("Polje za vrsto besedila ne more biti prazno!");
|
||||||
} else if (dataConfirmNotification.style.display == "none") {
|
} else if (dataConfirmNotification.style.display == "none") {
|
||||||
dataConfirmNotification.style.display = "inherit";
|
dataConfirmNotification.style.display = "inherit";
|
||||||
@@ -409,6 +433,7 @@
|
|||||||
|
|
||||||
|
|
||||||
this.on("sending", function(file, xhr, formData) {
|
this.on("sending", function(file, xhr, formData) {
|
||||||
|
formData.append("regija",form["regija"].value);
|
||||||
formData.append("program",form["program"].value);
|
formData.append("program",form["program"].value);
|
||||||
formData.append("predmet",form["predmet"].value);
|
formData.append("predmet",form["predmet"].value);
|
||||||
formData.append("predmet-custom",form["predmet-custom"].value);
|
formData.append("predmet-custom",form["predmet-custom"].value);
|
||||||
|
|||||||
@@ -3,14 +3,14 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Portal za oddajanje besedil</title>
|
<title>Portal za oddajanje besedil</title>
|
||||||
<link rel="stylesheet" href="/static/css/header.css" type="text/css">
|
<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/form.css" type="text/css">
|
||||||
<link rel="stylesheet" href="/static/css/simple-grid.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="stylesheet" href="../static/css/contracts.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<div class="logo"><a href="/"><img src="/static/image/logo-white.svg"/></a></div>
|
<div class="logo"><a href="../"><img src="../static/image/logo-white.svg"/></a></div>
|
||||||
<div class="menu-items">
|
<div class="menu-items">
|
||||||
<a href="../logout">Odjava</a>
|
<a href="../logout">Odjava</a>
|
||||||
{% if is_institution_coordinator %}
|
{% if is_institution_coordinator %}
|
||||||
@@ -29,97 +29,15 @@
|
|||||||
<p class="subtitle"></p>
|
<p class="subtitle"></p>
|
||||||
|
|
||||||
<div class="tab-nav">
|
<div class="tab-nav">
|
||||||
<a href="/oddaja">Oddaja besedil</a>
|
<a href="../oddaja">Oddaja besedil</a>
|
||||||
<a href="/zgodovina">Zgodovina sodelovanja</a>
|
<a href="../zgodovina">Zgodovina sodelovanja</a>
|
||||||
<a href="/pogodbe" class="active">Ekipa</a>
|
<a href="../pogodbe" class="active">Ekipa</a>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!--
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<h2>Oddaj pogodbo</h2>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{% if show_upload_form %}
|
|
||||||
<form action="" method="POST" id="form-pogodbe" enctype="multipart/form-data">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-6">
|
|
||||||
<div class="form-wrapper">
|
|
||||||
<input type="radio" id="sola" name="tip-pogodbe" value="sola" {% if enable_upload_school_contract %}{%else%}disabled{%endif%}>
|
|
||||||
<label for="sola">Pogodba s šolo</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-6">
|
|
||||||
<div class="form-wrapper">
|
|
||||||
<input type="radio" id="ucenci-starsi" name="tip-pogodbe" value="ucenci-starsi">
|
|
||||||
<label for="ucenci-starsi">Pogodba z učenci / starši</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-6">
|
|
||||||
<div class="form-wrapper">
|
|
||||||
<div id="dropzone-previews" class="dropzone-previews"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-6">
|
|
||||||
<div class="form-wrapper">
|
|
||||||
<label for="my-dropzone">Datoteka</label>
|
|
||||||
<div id="my-dropzone" class="dropzone"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<p>lalala</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-6">
|
|
||||||
<button class="btn" id="btn-submit" type="submit">Oddaj pogodbo</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
{% endif %}
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<h2>Oddane pogodbe</h2>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if contract_school %}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-6">
|
|
||||||
<div class="contract-item">
|
|
||||||
<img src="/static/image/contract.png" alt="contract" class="contract-item-icon"/>
|
|
||||||
<div class="contract-item-title">Pogodba s šolo</div>
|
|
||||||
<div class="contract-item-date">DODANO: {{contract_school.timestamp.strftime('%d. %m. %Y')}}</div>
|
|
||||||
<a href="../pogodbe-institucije/{{ contract_school.file_contract }}.pdf" class="contract-item-download">Prenesi</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
{% for item in contracts_students %}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-6">
|
|
||||||
<div class="contract-item">
|
|
||||||
<img src="/static/image/contract.svg" alt="contract" class="contract-item-icon"/>
|
|
||||||
<div class="contract-item-title">Pogodba o prenosu lastništva</div>
|
|
||||||
<div class="contract-item-date">DODANO: {{item.timestamp.strftime('%d. %m. %Y')}}</div>
|
|
||||||
<a href="../pogodbe-ucencistarsi/{{ item.file_contract }}.pdf" class="contract-item-download">Prenesi</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
<!--<div class="row">
|
<!--<div class="row">
|
||||||
@@ -127,203 +45,125 @@
|
|||||||
<h2>Sodelujoči</h2>
|
<h2>Sodelujoči</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>-->
|
</div>-->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<h2>Število oddaj na uporabnika</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
{% for collaborator in collaborators %}
|
<div id="my_dataviz">
|
||||||
<div class="team-item">
|
|
||||||
<div class="team-item-name">{{collaborator.name}}</div>
|
</div>
|
||||||
<div class="team-item-collaborations">
|
</div>
|
||||||
{% if collaborator.id in cooperation_history %}
|
</div>
|
||||||
{% if cooperation_history[collaborator.id]["coordinator"]|length > 0 %}
|
{% set vars = {'prev_schoolyear': ''} %}
|
||||||
<div class="team-item-years">Vodenje: {% for item in cooperation_history[collaborator.id]["coordinator"] %}
|
{% for item in cooperation_history %}
|
||||||
{% if loop.index != 1 %}, {% endif %}
|
{% if item.school_year != vars.prev_schoolyear %}
|
||||||
{{item[0]}}
|
<div class="row">
|
||||||
{% endfor %}</div>
|
<div class="col-12">
|
||||||
{% endif %}
|
<h2>Šolsko leto {{item.school_year}}</h2>
|
||||||
{% if cooperation_history[collaborator.id]["mentor"]|length > 0 %}
|
|
||||||
<div class="team-item-years">Mentorstvo: {% for item in cooperation_history[collaborator.id]["mentor"] %}
|
|
||||||
{% if loop.index != 1 %}, {% endif %}
|
|
||||||
{{item[0]}}
|
|
||||||
{% endfor %}</div>
|
|
||||||
{% endif %}
|
|
||||||
{% if cooperation_history[collaborator.id]["other"]|length > 0 %}
|
|
||||||
<div class="team-item-years">Drugo: {% for item in cooperation_history[collaborator.id]["other"] %}
|
|
||||||
{% if loop.index != 1 %}, {% endif %}
|
|
||||||
{{item[0]}}
|
|
||||||
{% endfor %}</div>
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endfor %}
|
{% 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>
|
</div>
|
||||||
</div>
|
{% endfor %}
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
|
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<a href="../logout">Odjavi se</a>
|
|
||||||
{% if is_institution_coordinator %}
|
|
||||||
<br><a href="../manage-institution">Upravljaj z institucijo</a>
|
|
||||||
{% endif %}
|
|
||||||
{% if is_admin %}
|
|
||||||
<br><a href="../admin">Administracijski meni</a>
|
|
||||||
{% endif %}
|
|
||||||
<br><a href="https://slovenscina.eu/" target="_blank">Več informacij</a>
|
|
||||||
<div class="bg"></div>
|
|
||||||
<div id="main-window">
|
|
||||||
<div id="rect1">
|
|
||||||
|
|
||||||
{% with messages = get_flashed_messages() %}
|
|
||||||
{% if messages %}
|
|
||||||
<div class="message-notification">
|
|
||||||
{{ messages[0] }}
|
|
||||||
</div>
|
|
||||||
<div id="contract-container" style="height: 250px;">
|
|
||||||
{% else %}
|
|
||||||
<div id="contract-container">
|
|
||||||
{% endif %}
|
|
||||||
{% endwith %}
|
|
||||||
|
|
||||||
{% if contract_school %}
|
|
||||||
<div class="contract-item">
|
|
||||||
<img src="/static/image/contract.png" alt="contract" class="contract-item-icon"/>
|
|
||||||
<div class="contract-item-title">Pogodba s šolo</div>
|
|
||||||
<div class="contract-item-data">{{contract_school.original_filename}}</div>
|
|
||||||
<div class="contract-item-data">DODANO: {{contract_school.timestamp}}</div>
|
|
||||||
<a href="../pogodbe-institucije/{{ contract_school.file_contract }}.pdf" class="contract-item-button">Prenesi</a>
|
|
||||||
</div>
|
|
||||||
</br>
|
|
||||||
{% endif %}
|
|
||||||
{% for item in contracts_students %}
|
|
||||||
<div class="contract-item">
|
|
||||||
<img src="/static/image/contract.png" alt="contract" class="contract-item-icon"/>
|
|
||||||
<div class="contract-item-title" style="font-size: 12px;">{{item.original_filename}}</div>
|
|
||||||
<div class="contract-item-data">Pogodba o prenosu lastništva</div>
|
|
||||||
<div class="contract-item-data">DODANO: {{item.timestamp}}</div>
|
|
||||||
<a href="../pogodbe-ucencistarsi/{{ item.file_contract }}.pdf" class="contract-item-button">Prenesi</a>
|
|
||||||
</div>
|
|
||||||
</br>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
</br>
|
|
||||||
</br>
|
|
||||||
{% if show_upload_form %}
|
|
||||||
<div style="padding: 20px; position: absolute; top: 500px; width: 89%;">
|
|
||||||
<div class="section-desc">Oddaj pogodbo</div>
|
|
||||||
<form action="../pogodbe" method="post" enctype="multipart/form-data">
|
|
||||||
{% if enable_upload_school_contract %}
|
|
||||||
<div style="display:flex; flex-direction: row; justify-content: left; align-items: center">
|
|
||||||
<label style="width: 80%; text-align: right;" for="sola">Pogodba s šolo</label>
|
|
||||||
<input style="width: 20%;" type="radio" id="sola" name="tip-pogodbe" value="sola">
|
|
||||||
</div>
|
|
||||||
{% else %}
|
|
||||||
<div style="display:flex; flex-direction: row; justify-content: left; align-items: center">
|
|
||||||
<label style="width: 80%; text-align: right;" for="sola">Pogodba s šolo</label>
|
|
||||||
<input style="width: 20%;"type="radio" id="sola" name="tip-pogodbe" value="sola" disabled>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div style="display:flex; flex-direction: row; justify-content: left; align-items: center">
|
|
||||||
<label style="width: 80%; text-align: right;" for="ucenci-starsi">Pogodba z učenci / starši</label>
|
|
||||||
<input style="width: 20%;" type="radio" id="ucenci-starsi" name="tip-pogodbe" value="ucenci-starsi" checked>
|
|
||||||
</div>
|
|
||||||
<input style="font-size: 10px;" type="file" id="file-contract" name="file[]" multiple="">
|
|
||||||
<button style="float: right;" type="submit">Oddaj pogodbo</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<div id="rect2" class="mock-side">
|
|
||||||
<div id="collaborators-container">
|
|
||||||
<div class="container-title">Sodelujoči</div>
|
|
||||||
<div style="overflow-y: auto;">
|
|
||||||
{% for collaborator in collaborators %}
|
|
||||||
<div class="collaborators-item">
|
|
||||||
<div class="collaborators-item-name">{{collaborator.name}}</div>
|
|
||||||
{% if collaborator.id in cooperation_history %}
|
|
||||||
{% if cooperation_history[collaborator.id]["coordinator"]|length > 0 %}
|
|
||||||
<div class="collaborators-item-years"><b>Vodenje:</b> {% for item in cooperation_history[collaborator.id]["coordinator"] %}
|
|
||||||
{% if loop.index != 1 %}, {% endif %}
|
|
||||||
{{item[0]}}
|
|
||||||
{% endfor %}</div>
|
|
||||||
{% endif %}
|
|
||||||
{% if cooperation_history[collaborator.id]["mentor"]|length > 0 %}
|
|
||||||
<div class="collaborators-item-years"><b>Mentorstvo:</b> {% for item in cooperation_history[collaborator.id]["mentor"] %}
|
|
||||||
{% if loop.index != 1 %}, {% endif %}
|
|
||||||
{{item[0]}}
|
|
||||||
{% endfor %}</div>
|
|
||||||
{% endif %}
|
|
||||||
{% if cooperation_history[collaborator.id]["other"]|length > 0 %}
|
|
||||||
<div class="collaborators-item-years"><b>Drugo:</b> {% for item in cooperation_history[collaborator.id]["other"] %}
|
|
||||||
{% if loop.index != 1 %}, {% endif %}
|
|
||||||
{{item[0]}}
|
|
||||||
{% endfor %}</div>
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="awards-container">
|
|
||||||
<div class="container-title">Sodelovanje v letih</div>
|
|
||||||
<div style="overflow-y: auto; margin: auto; width: 100%; height: 200px;">
|
|
||||||
{% if cooperation_history.keys()|length > 0 %}
|
|
||||||
{% if user_id in cooperation_history %}
|
|
||||||
{% for item in cooperation_history[user_id]['coordinator'] %}
|
|
||||||
<div style="border-bottom: 2px solid #c4c4c4; min-height: 50px; margin-bottom: 10px;">
|
|
||||||
<img src="/static/image/star.png" alt="star" style="float: left; width: 40px;"/>
|
|
||||||
<div class="collaborators-item-name"
|
|
||||||
style="float: right; width: 250px; text-align: left; margin-left: 20px;text-overflow: ellipsis; overflow: hidden; white-space: nowrap;">
|
|
||||||
{{item[1]}}
|
|
||||||
</div>
|
|
||||||
<div class="collaborators-item-name"
|
|
||||||
style="float: right; width: 250px; text-align: left; margin-left: 20px;">
|
|
||||||
{{item[0]}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
{% for item in cooperation_history[user_id]['mentor'] %}
|
|
||||||
<div style="border-bottom: 2px solid #c4c4c4; min-height: 50px; margin-bottom: 10px;">
|
|
||||||
<img src="/static/image/star.png" alt="star" style="float: left; width: 40px;"/>
|
|
||||||
<div class="collaborators-item-name"
|
|
||||||
style="float: right; width: 250px; text-align: left; margin-left: 20px;text-overflow: ellipsis; overflow: hidden; white-space: nowrap;">
|
|
||||||
{{item[1]}}
|
|
||||||
</div>
|
|
||||||
<div class="collaborators-item-name"
|
|
||||||
style="float: right; width: 250px; text-align: left; margin-left: 20px;">
|
|
||||||
{{item[0]}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
{% for item in cooperation_history[user_id]['other'] %}
|
|
||||||
<div style="border-bottom: 2px solid #c4c4c4; min-height: 50px; margin-bottom: 10px;">
|
|
||||||
<img src="/static/image/star.png" alt="star" style="float: left; width: 40px;"/>
|
|
||||||
<div class="collaborators-item-name"
|
|
||||||
style="float: right; width: 250px; text-align: left; margin-left: 20px;text-overflow: ellipsis; overflow: hidden; white-space: nowrap;">
|
|
||||||
{{item[1]}}
|
|
||||||
</div>
|
|
||||||
<div class="collaborators-item-name"
|
|
||||||
style="float: right; width: 250px; text-align: left; margin-left: 20px;">
|
|
||||||
{{item[0]}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>-->
|
|
||||||
</body>
|
</body>
|
||||||
<script src="https://d3js.org/d3.v6.js"></script>
|
<script src="https://d3js.org/d3.v6.js"></script>
|
||||||
|
<style>
|
||||||
|
#my_dataviz .tick line{
|
||||||
|
visibility:hidden;
|
||||||
|
}
|
||||||
|
#my_dataviz path.domain{
|
||||||
|
visibility:hidden;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
<script>
|
<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-by-user/").then(function(jsondata) {
|
||||||
|
if(Object.keys(jsondata).length < 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
data = [];
|
||||||
|
console.log(Object.keys(jsondata).length);
|
||||||
|
var margin = {top: 20, right: 0, bottom: 40, left: 0};
|
||||||
|
var width = document.getElementById("my_dataviz").clientWidth - margin.left - margin.right;
|
||||||
|
var height = Object.keys(jsondata).length * 56;
|
||||||
|
var svg = d3.select("#my_dataviz")
|
||||||
|
.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 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); })
|
||||||
|
.attr("height", 32 )
|
||||||
|
.attr("fill", "#006CB7");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -3,15 +3,15 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Portal ŠOLAR</title>
|
<title>Portal ŠOLAR</title>
|
||||||
<link rel="stylesheet" href="/static/css/login-styles.css" type="text/css">
|
<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="stylesheet" href="../static/css/utils.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="background">
|
<div class="background">
|
||||||
<div class="panel login-panel">
|
<div class="panel login-panel">
|
||||||
<div class="panel-logo">
|
<div class="panel-logo">
|
||||||
<img src="/static/image/logo.svg" alt="logo"/>
|
<img src="../static/image/logo.svg" alt="logo"/>
|
||||||
</div>
|
</div>
|
||||||
<h2 class="text-center">Portal za oddajanje besedil</h2>
|
<h2 class="text-center">Portal za oddajanje besedil</h2>
|
||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
@@ -20,6 +20,14 @@
|
|||||||
<div class="text-center m-b-3"><em>Zbiranje besedil za korpus Šolar poteka po naslednjem postopku, ki prinaša tudi točke za napredovanje v pedagoški naziv.</em></div>
|
<div class="text-center m-b-3"><em>Zbiranje besedil za korpus Šolar poteka po naslednjem postopku, ki prinaša tudi točke za napredovanje v pedagoški naziv.</em></div>
|
||||||
|
|
||||||
<h1 class="m-b-3">Registracija</h1>
|
<h1 class="m-b-3">Registracija</h1>
|
||||||
|
{% with messages = get_flashed_messages() %}
|
||||||
|
{% if messages %}
|
||||||
|
<div class="alert">
|
||||||
|
<img src="../static/image/alert.svg" alt="alert"/>
|
||||||
|
<p>{{ messages[0] }}</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endwith %}
|
||||||
<div>
|
<div>
|
||||||
<form method="POST" action="../register" class="m-b-2">
|
<form method="POST" action="../register" class="m-b-2">
|
||||||
<div class="input-wrapper">
|
<div class="input-wrapper">
|
||||||
@@ -40,7 +48,8 @@
|
|||||||
<img src="../static/image/password.svg" alt="user" class="input-icon"/>
|
<img src="../static/image/password.svg" alt="user" class="input-icon"/>
|
||||||
<div class="input-floating-label">
|
<div class="input-floating-label">
|
||||||
<label>Geslo</label>
|
<label>Geslo</label>
|
||||||
<input type="password" name="password">
|
<input type="password" name="password">
|
||||||
|
<label class="input-hint">Geslo naj bo dolgo vsaj 8 znakov.</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="input-wrapper">
|
<div class="input-wrapper">
|
||||||
@@ -64,17 +73,10 @@
|
|||||||
<button class="btn" style="margin-left: 46px;">REGISTRACIJA</button>
|
<button class="btn" style="margin-left: 46px;">REGISTRACIJA</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{% with messages = get_flashed_messages() %}
|
|
||||||
{% if messages %}
|
|
||||||
<div class="alert">
|
|
||||||
<img src="/static/image/alert.svg" alt="alert"/>
|
|
||||||
<p>{{ messages[0] }}</p>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
{% endwith %}
|
|
||||||
<div class="back-to-login">
|
<div class="back-to-login">
|
||||||
<img src="/static/image/chevron-left.svg"/>
|
<img src="../static/image/chevron-left.svg"/>
|
||||||
<a href="/login">Nazaj na prijavo</a>
|
<a href="../login">Nazaj na prijavo</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,14 +3,14 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Portal ŠOLAR</title>
|
<title>Portal ŠOLAR</title>
|
||||||
<link rel="stylesheet" href="/static/css/login-styles.css" type="text/css">
|
<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="stylesheet" href="../static/css/utils.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="background">
|
<div class="background">
|
||||||
<div class="panel login-panel">
|
<div class="panel login-panel">
|
||||||
<div class="panel-logo">
|
<div class="panel-logo">
|
||||||
<img src="/static/image/logo.svg" alt="logo"/>
|
<img src="../static/image/logo.svg" alt="logo"/>
|
||||||
</div>
|
</div>
|
||||||
<h1 class="m-b-3">Ponastavitev gesla - ŠOLAR</h1>
|
<h1 class="m-b-3">Ponastavitev gesla - ŠOLAR</h1>
|
||||||
<div>
|
<div>
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
<div class="input-floating-label">
|
<div class="input-floating-label">
|
||||||
<label>Novo geslo</label>
|
<label>Novo geslo</label>
|
||||||
<input type="password" name="new_password">
|
<input type="password" name="new_password">
|
||||||
|
<label class="input-hint">Geslo naj bo dolgo vsaj 8 znakov.</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -3,16 +3,16 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Portal za oddajanje besedil</title>
|
<title>Portal za oddajanje besedil</title>
|
||||||
<!--<link rel="stylesheet" href="/static/style.css" type="text/css">-->
|
<!--<link rel="stylesheet" href="../static/style.css" type="text/css">-->
|
||||||
<script src="/static/chart.js"></script>
|
<script src="../static/chart.js"></script>
|
||||||
<link rel="stylesheet" href="/static/css/header.css" type="text/css">
|
<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/form.css" type="text/css">
|
||||||
<link rel="stylesheet" href="/static/css/simple-grid.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="../static/css/history.css" type="text/css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<div class="logo"><a href="/"><img src="/static/image/logo-white.svg"/></a></div>
|
<div class="logo"><a href="../"><img src="../static/image/logo-white.svg"/></a></div>
|
||||||
<div class="menu-items">
|
<div class="menu-items">
|
||||||
<a href="../logout">Odjava</a>
|
<a href="../logout">Odjava</a>
|
||||||
{% if is_institution_coordinator %}
|
{% if is_institution_coordinator %}
|
||||||
@@ -32,9 +32,9 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="tab-nav">
|
<div class="tab-nav">
|
||||||
<a href="/oddaja">Oddaja besedil</a>
|
<a href="../oddaja">Oddaja besedil</a>
|
||||||
<a href="/zgodovina" class="active">Zgodovina sodelovanja</a>
|
<a href="../zgodovina" class="active">Zgodovina sodelovanja</a>
|
||||||
<a href="/pogodbe">Ekipa</a>
|
<a href="../pogodbe">Ekipa</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -55,23 +55,36 @@
|
|||||||
"PTI" : "Poklicno-tehnično izobraževanje (PTI)"
|
"PTI" : "Poklicno-tehnično izobraževanje (PTI)"
|
||||||
}%}
|
}%}
|
||||||
{% set map_subject = {
|
{% set map_subject = {
|
||||||
"slo" : "Slovenščina",
|
"SLO" : "Slovenščina",
|
||||||
"drug-jez" : "Drugi jezikoslovni predmeti",
|
"DJP" : "Drugi jezikoslovni predmeti",
|
||||||
"drug-druz" : "Drugi družboslovni predmeti",
|
"DDP" : "Drugi družboslovni predmeti",
|
||||||
"drug-narav" : "Drugi naravoslovni predmeti",
|
"DNP" : "Drugi naravoslovni predmeti",
|
||||||
"drug-strok" : "Drugi strokovni predmeti",
|
"DSP" : "Drugi strokovni predmeti",
|
||||||
"drug-izb" : "Drugi izbirni ali dodatni predmeti",
|
"DIP" : "Drugi izbirni ali dodatni predmeti",
|
||||||
}%}
|
}%}
|
||||||
{% set map_text_type = {
|
{% set map_text_type = {
|
||||||
"esej-spis" : "Esej ali spis",
|
"E" : "Esej ali spis",
|
||||||
"prakticno" : "Praktično besedilo, napisano za oceno",
|
"PB" : "Praktično besedilo, napisano za oceno",
|
||||||
"solski-test" : "Šolski test",
|
"T" : "Šolski test",
|
||||||
"delo-v-razredu" : "Delo v razredu, ne za oceno",
|
"R" : "Delo v razredu, ne za oceno",
|
||||||
}%}
|
}%}
|
||||||
{% set map_grammar_corrections = {
|
{% set map_grammar_corrections = {
|
||||||
"popr-ne" : "Besedilo vsebuje učiteljske popravke",
|
"DD" : "Besedilo vsebuje učiteljske popravke",
|
||||||
"brez-popr" : "Besedilo ne vsebuje učiteljskih popravkov",
|
"N" : "Besedilo ne vsebuje učiteljskih popravkov",
|
||||||
"popr-da" : "Besedilo vsebuje učiteljske popravke in ne strinjam se z njihovo vključitvijo v korpus",
|
"DN" : "Besedilo vsebuje učiteljske popravke in ne strinjam se z njihovo vključitvijo v korpus",
|
||||||
|
}%}
|
||||||
|
{% set map_regions = {
|
||||||
|
"CE" : "Celje",
|
||||||
|
"GO" : "Nova Gorica",
|
||||||
|
"KK" : "Krško",
|
||||||
|
"KP" : "Koper",
|
||||||
|
"KR" : "Kranj",
|
||||||
|
"LJ" : "Ljubljana",
|
||||||
|
"MB" : "Maribor",
|
||||||
|
"MS" : "Murska Sobota",
|
||||||
|
"NM" : "Novo Mesto",
|
||||||
|
"PO" : "Postojna",
|
||||||
|
"SG" : "Slovenj Gradec",
|
||||||
}%}
|
}%}
|
||||||
|
|
||||||
|
|
||||||
@@ -81,6 +94,9 @@
|
|||||||
{% if institution_names[loop.index - 1] %}
|
{% if institution_names[loop.index - 1] %}
|
||||||
{% set item_values = item_values + [institution_names[loop.index - 1]] %}
|
{% set item_values = item_values + [institution_names[loop.index - 1]] %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if item.region %}
|
||||||
|
{% set item_values = item_values + [map_regions[item.region]] %}
|
||||||
|
{% endif %}
|
||||||
{% if item.program %}
|
{% if item.program %}
|
||||||
{% set item_values = item_values + [map_program[item.program]] %}
|
{% set item_values = item_values + [map_program[item.program]] %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -111,9 +127,9 @@
|
|||||||
<div class="history-item-date">Dodano {{ item.timestamp.strftime('%d. %m. %Y') }}</div>
|
<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-uploader">{{ uploader_names[loop.index - 1] }}</div>
|
||||||
<div class="history-item-filecount">Št. datotek: {{ item.upload_file_hashes|length }}</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="../static/image/chevron-down.svg"/></div>
|
||||||
<div class="history-item-desc">
|
<div class="history-item-desc">
|
||||||
{{ item_values | join(" | ") }}
|
{{ item_values | join(" | ") |truncate(120) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6" style="margin:0">
|
<div class="col-6" style="margin:0">
|
||||||
@@ -128,14 +144,24 @@
|
|||||||
{% if item.upload_file_names != None %}
|
{% if item.upload_file_names != None %}
|
||||||
{% for f_name in item.upload_file_names %}
|
{% for f_name in item.upload_file_names %}
|
||||||
<div class="file-item">
|
<div class="file-item">
|
||||||
<div class="file-icon"><img src="/static/image/file.svg"/></div>
|
<div class="file-icon"><img src="../static/image/file.svg"/></div>
|
||||||
<a href="getuploadfile/{{item.id}}/{{item.upload_file_hashes[loop.index - 1]}}" class="file-name">{{f_name}}</a>
|
<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]}}
|
||||||
|
{%else%}
|
||||||
|
{{f_name}}
|
||||||
|
{% endif %}
|
||||||
|
</a>
|
||||||
|
</br>
|
||||||
|
{% if item.upload_file_codes != None %}
|
||||||
|
<!--<div>{{item.upload_file_codes[loop.index - 1]}}</div>-->
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% for f_hash in item.upload_file_hashes %}
|
{% for f_hash in item.upload_file_hashes %}
|
||||||
<div class="file-item">
|
<div class="file-item">
|
||||||
<div class="file-icon"><img src="/static/image/file.svg"/></div>
|
<div class="file-icon"><img src="../static/image/file.svg"/></div>
|
||||||
<a href="getuploadfile/{{item.id}}/{{f_hash}}" class="file-name">{{f_hash}}</a>
|
<a href="getuploadfile/{{item.id}}/{{f_hash}}" class="file-name">{{f_hash}}</a>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -151,6 +177,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<br/><br/><br/><br/><br/><br/><br/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -158,111 +185,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--<div class="bg"></div>
|
|
||||||
<div id="main-window">
|
|
||||||
<div id="rect1">
|
|
||||||
<div style="padding: 20px;">
|
|
||||||
<div id="logo-container">
|
|
||||||
<img src="/static/image/logo.svg" alt="logo"/>
|
|
||||||
</div>
|
|
||||||
<h1 id="title" style="font-size: 25px; position: relative;">Korpus ŠOLAR</h1>
|
|
||||||
<div class="selection-tabs">
|
|
||||||
<button onclick="window.location.replace('../oddaja');" class="selection-tab-button">ODDAJA</button>
|
|
||||||
<button onclick="window.location.replace('../zgodovina');" class="selection-tab-button selected">ZGODOVINA</button>
|
|
||||||
<button onclick="window.location.replace('../pogodbe');" class="selection-tab-button">POGODBE</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="history-container" style="padding: 20px;">
|
|
||||||
{% for item in upload_history %}
|
|
||||||
<div class="history-item">
|
|
||||||
<div class="history-item-date">{{ item.timestamp }}</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-desc">
|
|
||||||
[
|
|
||||||
{% set began = False %}
|
|
||||||
{% if institution_names[loop.index - 1] %}
|
|
||||||
{% if began %}, {% endif %} {{ institution_names[loop.index - 1] }}
|
|
||||||
{% set began = True %}
|
|
||||||
{% endif %}
|
|
||||||
{% if item.program %}
|
|
||||||
{% if began %}, {% endif %} {{ item.program }}
|
|
||||||
{% set began = True %}
|
|
||||||
{% endif %}
|
|
||||||
{% if item.subject %}
|
|
||||||
{% if began %}, {% endif %} {{ item.subject }}
|
|
||||||
{% set began = True %}
|
|
||||||
{% endif %}
|
|
||||||
{% if item.subject_custom %}
|
|
||||||
{% if began %}, {% endif %} {{ item.subject_custom }}
|
|
||||||
{% set began = True %}
|
|
||||||
{% endif %}
|
|
||||||
{% if item.grade %}
|
|
||||||
{% if began %}, {% endif %} {{ item.grade }}
|
|
||||||
{% set began = True %}
|
|
||||||
{% endif %}
|
|
||||||
{% if item.text_type %}
|
|
||||||
{% if began %}, {% endif %} {{ item.text_type }}
|
|
||||||
{% set began = True %}
|
|
||||||
{% endif %}
|
|
||||||
{% if item.text_type_custom %}
|
|
||||||
{% if began %}, {% endif %} {{ item.text_type_custom }}
|
|
||||||
{% set began = True %}
|
|
||||||
{% endif %}
|
|
||||||
{% if item.school_year %}
|
|
||||||
{% if began %}, {% endif %} {{ item.school_year }}
|
|
||||||
{% set began = True %}
|
|
||||||
{% endif %}
|
|
||||||
{% if item.grammar_corrections %}
|
|
||||||
{% if began %}, {% endif %} {{ item.grammar_corrections }}
|
|
||||||
{% set began = True %}
|
|
||||||
{% endif %}
|
|
||||||
]
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</br>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="rect2" class="mock-side">
|
|
||||||
<canvas id="myChart" width="400" height="400"></canvas>
|
|
||||||
<script>
|
|
||||||
function drawChart(data) {
|
|
||||||
var ctx = document.getElementById('myChart').getContext('2d');
|
|
||||||
var myChart = new Chart(ctx, {
|
|
||||||
type: 'bar',
|
|
||||||
data: {
|
|
||||||
labels: Object.keys(data),
|
|
||||||
datasets: [{
|
|
||||||
label: 'št. naloženih datotek',
|
|
||||||
data: Object.values(data),
|
|
||||||
backgroundColor: 'rgba(54, 162, 235, 1.0)',
|
|
||||||
borderWidth: 1
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
options: {
|
|
||||||
plugins: {
|
|
||||||
title: {
|
|
||||||
display: true,
|
|
||||||
text: ''
|
|
||||||
}
|
|
||||||
},
|
|
||||||
scales: {
|
|
||||||
y: {
|
|
||||||
beginAtZero: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
indexAxis: 'y'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
fetch('../topuploads').then(r => r.json()).then(j => drawChart(j));
|
|
||||||
|
|
||||||
</script>-->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
var toggleOpen = function() {
|
var toggleOpen = function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user