Almost done! Only the removal of points and the 'shop' system left.(and some front end + the admin process)
BIN
reValuate/home/static/home/images/github.png
Normal file
After Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 747 KiB |
BIN
reValuate/home/static/home/images/mail.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
reValuate/media/images/2/Firefox_wallpaper.png
Normal file
After Width: | Height: | Size: 466 KiB |
BIN
reValuate/media/images/2/Firefox_wallpaper_kUUWnUG.png
Normal file
After Width: | Height: | Size: 466 KiB |
BIN
reValuate/media/images/3/Firefox_wallpaper_VawhPCu.png
Normal file
After Width: | Height: | Size: 466 KiB |
BIN
reValuate/media/images/3/Firefox_wallpaper_rfeAtQ2.png
Normal file
After Width: | Height: | Size: 466 KiB |
BIN
reValuate/media/images/3/Firefox_wallpaper_whgMjoy.png
Normal file
After Width: | Height: | Size: 466 KiB |
33
reValuate/templates/addBalance.html
Normal file
@ -0,0 +1,33 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block title %} Update Balance {% endblock %}
|
||||
|
||||
|
||||
|
||||
{% if user.is_superuser %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
<div class="centered">
|
||||
{% if message is None %}
|
||||
<p>Hello, {{ user.username }} !</p>
|
||||
{% else %}
|
||||
<p>{{ message }}</p>
|
||||
{% endif %}
|
||||
|
||||
<form method="post" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
<input name="user_instance" id="user_instance" placeholder="Pencho Slaveikov"><br>
|
||||
<input name="tokens", id="tokens", placeholder="523...">
|
||||
<button type="submit">Upload</button>
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% else %}
|
||||
|
||||
<h1>Unauthorized</h1>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
</head>
|
||||
<body>
|
||||
{% block aboveNav %} {% endblock %}
|
||||
<div class="navview">
|
||||
<nav class="navbar navbar-expand-lg bg-success">
|
||||
<a style="color: white; font-size: 200%;" class="navbar-brand mb-0 h1" href="/"> reValuate | </a>
|
||||
@ -34,7 +35,12 @@
|
||||
<ul class="navbar-nav ml-auto">
|
||||
<li class="nav-item dropdown ">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
{% if user.is_authenticated %}
|
||||
{{ user.username }}
|
||||
{% else %}
|
||||
Акaунт
|
||||
{% endif %}
|
||||
|
||||
</a>
|
||||
<div class="dropdown-menu animate slideIn" aria-labelledby="navbarDropdown" >
|
||||
|
||||
|
@ -8,6 +8,9 @@
|
||||
{% if user.is_authenticated %}
|
||||
Hi {{ user.username }}!
|
||||
{{ userBalance}}
|
||||
<div>
|
||||
{{ qr_code }}
|
||||
</div>
|
||||
{% else %}
|
||||
<p>You are not logged in</p>
|
||||
<a href="{% url 'login' %}">Log In</a>
|
||||
|
@ -34,7 +34,11 @@
|
||||
<ul class="navbar-nav ml-auto">
|
||||
<li class="nav-item dropdown ">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
Акаунт
|
||||
{% if user.is_authenticated %}
|
||||
{{ user.username }}
|
||||
{% else %}
|
||||
Акaунт
|
||||
{% endif %}
|
||||
</a>
|
||||
<div class="dropdown-menu animate slideIn" aria-labelledby="navbarDropdown" >
|
||||
{% if user.is_authenticated %}
|
||||
@ -79,7 +83,7 @@
|
||||
<h1><strong>reValuate</strong><br />
|
||||
</h1>
|
||||
{% if user.is_authenticated %}
|
||||
<p>Здравейте, {{ user.username }}!</p>
|
||||
<p>Здравей, {{ user.username }}!</p>
|
||||
<ul class="actions special">
|
||||
<li><a href="/upload/" class="button scrolly">Качи!</a></li>
|
||||
<li><a href="/view_media/" class="button scrolly">Виж прогреса си!</a></li>
|
||||
@ -88,7 +92,7 @@
|
||||
</ul>
|
||||
|
||||
{% else %}
|
||||
<p>Проект на тема разделно събиране.<br> Разработено от ученици от <a href="https://edutech.bg">ЧПГ "Образователни технологии"</a></p>
|
||||
<p>Проект на тема разделно събиране.<br> Разработено от ученици от <a style="color:white; " href="https://edutech.bg">ЧПГ "Образователни технологии"</a></p>
|
||||
<ul class="actions special">
|
||||
<li><a href="#one" class="button scrolly">Кои сме ние</a></li>
|
||||
|
||||
@ -101,40 +105,18 @@
|
||||
<section id="one" class="main style1">
|
||||
<div class="container">
|
||||
<div class="row gtr-150">
|
||||
<div class="col-6 col-12-medium">
|
||||
<div class="col-6 col-12-medium text-left">
|
||||
<header class="major">
|
||||
<h2>Нашата цел и основни дейности<br /></h2>
|
||||
</header><p>
|
||||
Представяме Ви проект на тема “Как да създам култура за разделно събиране в учениците?”.<br><br>
|
||||
|
||||
Името, което избрахме за проекта, е “reValuate”, което носи смисъл на “да дам нова стойност на нещата”.<br><br>
|
||||
|
||||
Основната цел на проекта е запознаване с ползите от рециклирането на учениците и подтикването им да започнат да събират разделно боклук<span id="dots">...</span><span id="more"><br>
|
||||
Основни дейности по проекта са поставянето на кошове за разделно събиране в училище и създаване на сайт, в който може да се качват видеа и снимки как ученици изхвърлят разделно боклуци. За всеки материал получават конкретен брой точки (ел.валута), която обменят в училище за награди. За една снимка получават 2 точки, а за едно видео 3 точки. Наградният фонд е спонсориран от учениците с 1лв. и ръководството на училището. Допълнителни точки се получават при споделяне в соц. мрежи.</span></p>
|
||||
Това е сайт, в който може да се качват видеа и снимки как ученици изхвърлят разделно боклуци. За всеки материал получават конкретен брой точки (ел.валута), която обменят в училище за награди. <br>За една снимка получават 2 точки, а за едно видео 3 точки.<br> Допълнителни точки се получават при споделяне в соц. мрежи.</span></p>
|
||||
|
||||
<button onclick="myFunction()" id="myBtn">Прочети повече</button>
|
||||
|
||||
<script>
|
||||
function myFunction() {
|
||||
var dots = document.getElementById("dots");
|
||||
var moreText = document.getElementById("more");
|
||||
var btnText = document.getElementById("myBtn");
|
||||
|
||||
if (dots.style.display === "none") {
|
||||
dots.style.display = "inline";
|
||||
btnText.innerHTML = "Read more";
|
||||
moreText.style.display = "none";
|
||||
} else {
|
||||
dots.style.display = "none";
|
||||
btnText.innerHTML = "Read less";
|
||||
moreText.style.display = "inline";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="col-6 col-12-medium imp-medium">
|
||||
<span class="image fit"><img src="images/versus.png" alt="" /></span>
|
||||
</div>
|
||||
<div class="col-6 col-12-medium imp-medium">
|
||||
<span class="image fit "><img class="pull-right" src="/static/home/images/kofi.jpg" alt="" /></span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@ -149,7 +131,15 @@
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<div id="odometer" class="odometer">{{ currencyTotal }}</div>
|
||||
<div style="
|
||||
background:linear-gradient( 292.6deg, rgba(255,255,255,1) -44.1%, rgba(40,167,69,1) 100.5% );background-size: 100%;
|
||||
background-repeat: repeat;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
-moz-background-clip: text;
|
||||
-moz-text-fill-color: transparent;
|
||||
font-size:70px;
|
||||
">{{ currencyTotal }}</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -163,49 +153,34 @@
|
||||
<h2>Други дейности по проекта</h2>
|
||||
</header>
|
||||
<div class="row gtr-150">
|
||||
<div class="col-4 col-12-medium">
|
||||
<div class="col-6 col-12-large">
|
||||
<span class="image fit"><img src="images/logo_blue.png" alt="" /></span>
|
||||
<h3>Информиране за ползите от рециклирането чрез:</h3>
|
||||
<ul>
|
||||
<li>информация на сайта на проекта/ на училището</li>
|
||||
<li>информация на страницата на училището в соц.мрежи</li>
|
||||
<li>презентации по класове</li>
|
||||
<li>плакати на ключови места в училище</li>
|
||||
<li>стените на класните стаи в google classroom</li>
|
||||
<li>тик- ток видеа с образователна и забавна цел</li>
|
||||
<h3>Популяризация:</h3>
|
||||
<ul><br>
|
||||
<li>информация на сайта на проекта/ на училището</li><br>
|
||||
<li>информация на страницата на училището в соц.мрежи</li><br>
|
||||
<li>презентации по класове</li><br>
|
||||
<li>плакати на ключови места в училище</li><br>
|
||||
<li>стените на класните стаи в google classroom</li><br>
|
||||
<li>тик- ток видеа с образователна и забавна цел</li><br>
|
||||
</ul>
|
||||
<ul class="actions special">
|
||||
<p></p>
|
||||
<!-- <li><a href="" class="button">More</a></li> -->
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-4 col-12-medium">
|
||||
<div class="col-6 col-12-large">
|
||||
<span class="image fit"><img src="images/logo_green.png" alt="" /></span>
|
||||
<h3>Учениците ще бъдат мотивирани да участват чрез</h3>
|
||||
<h3>Защо да участвам? </h3><br>
|
||||
<ul>
|
||||
<li>награден фонд за участие в проекта: напитки, вафли, солети и голяма награда ваучер за пазаруване от голяма верига. Наградите се разпределят спрямо натрупаните точки в сайта. Те са лимитирани.</li>
|
||||
<li>Сертификат за участие в извънкласни дейности от името на училището при натрупани минимум 30 точки.</li>
|
||||
<li>Извинение на закъснение при натрупани минимум 24 точки.</li>
|
||||
<li>награден фонд за участие в проекта: напитки, вафли, солети и голяма награда ваучер за пазаруване от голяма верига. Наградите се разпределят спрямо натрупаните точки в сайта. </li><br>
|
||||
<li>Сертификат за участие в извънкласни дейности от името на училището при натрупани минимум 30 точки.</li><br>
|
||||
<li>Извинение на закъснение при натрупани минимум 24 точки.</li><br>
|
||||
</ul>
|
||||
<ul class="actions special">
|
||||
<!-- <li><a href="https://steamcommunity.com/groups/NadeRampESports" class="button">More</a></li> -->
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-4 col-12-medium">
|
||||
<span class="image fit"><img src="images/logo_purple.png" alt="" /></span>
|
||||
<h3>Допълнителни дейности:</h3>
|
||||
<p></p>
|
||||
<ul>
|
||||
<li>конкурс за плакат за всички, изучаващи графичен дизайн. С всички плакати ще направим изложба, а с победителите ще направим информационната ни кампания в училище.</li>
|
||||
<li>конкурс за изработване на хендмейд неща от рециклирани материали.</li>
|
||||
<li>голямо парти в двора на училището на тема рециклиране в края на юни месец, когато ще се раздадат сертификатите и големите награди</li>
|
||||
<li>образователна екскурзия</li>
|
||||
<li>обществено полезен труд</li>
|
||||
</ul>
|
||||
<ul class="actions special">
|
||||
<!-- <li><a href="#" class="button">More</a></li> -->
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@ -229,8 +204,8 @@
|
||||
<ul class="icons">
|
||||
<!-- <li><a href="#" class="icon brands alt fa-twitter"><span class="label">Twitter</span></a></li> -->
|
||||
<!-- <li><a href="#" class="icon brands alt fa-facebook-f"><span class="label">Facebook</span></a></li> -->
|
||||
<li><a href="https://github.com/yamozha" class="icon brands alt fa-github"><span class="label">GitHub</span></a></li>
|
||||
<li><a href="mailto:boyan+revaluate@bobokara.com" class="icon solid alt fa-envelope"><span class="label">Email</span></a></li>
|
||||
<li><a href="https://github.com/yamozha"><img src="/static/home/images/github.png" width = 64 height=64 /></a></li>
|
||||
<li><a href="mailto:boyan+revaluate@bobokara.com"><img src="/static/home/images/mail.png" width = 128 height=128 /></a></li>
|
||||
</ul>
|
||||
<ul class="copyright">
|
||||
<li>© edutech</li><li>Design: <a href="https://github.com/yamozha">yamozha</a> and <a href=https://github.com/vassdeniss>vassdeniss</a></li>
|
||||
|
@ -1,192 +0,0 @@
|
||||
<!-- templates/index.html -->
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
{% block optionalParams%}
|
||||
<link rel="stylesheet" href="{% static home/css/main.css"% } />
|
||||
<noscript><link rel="stylesheet" href="{% static home/css/noscript.css %}" /></noscript>
|
||||
<script src="http://github.hubspot.com/odometer/odometer.js"></script>
|
||||
<link rel="stylesheet" href="https://raw.githubusercontent.com/HubSpot/odometer/master/themes/odometer-theme-car.css" />
|
||||
|
||||
<style>
|
||||
.odometer {
|
||||
font-size: 50px;
|
||||
}
|
||||
</style>
|
||||
{%endblock%}
|
||||
{% block content %}
|
||||
|
||||
<body class="is-preload">
|
||||
|
||||
<!-- Header -->
|
||||
<section id="header">
|
||||
<div class="inner">
|
||||
<img src="{% static home/images/white.png" width="200" height="200">
|
||||
<h1><strong>reValuate</strong><br />
|
||||
</h1>
|
||||
{% if user.is_authenticated %}
|
||||
<p>Здравейте, {{ user.username }}!</p>
|
||||
<p>Проект на тема разделно събиране.<br> Разработено от ученици от <a href="https://edutech.bg">ЧПГ "Образователни технологии"</a></p>
|
||||
<ul class="actions special">
|
||||
<li><a href="/upload/" class="button scrolly">Качи!</a></li>
|
||||
|
||||
|
||||
{% else %}
|
||||
<p>Проект на тема разделно събиране.<br> Разработено от ученици от <a href="https://edutech.bg">ЧПГ "Образователни технологии"</a></p>
|
||||
<ul class="actions special">
|
||||
<li><a href="#one" class="button scrolly">Кои сме ние</a></li>
|
||||
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- One -->
|
||||
<section id="one" class="main style1">
|
||||
<div class="container">
|
||||
<div class="row gtr-150">
|
||||
<div class="col-6 col-12-medium">
|
||||
<header class="major">
|
||||
<h2>Нашата цел и основни дейности<br /></h2>
|
||||
</header><p>
|
||||
Представяме Ви проект на тема “Как да създам култура за разделно събиране в учениците?”.<br><br>
|
||||
|
||||
Името, което избрахме за проекта, е “reValuate”, което носи смисъл на “да дам нова стойност на нещата”.<br><br>
|
||||
|
||||
Основната цел на проекта е запознаване с ползите от рециклирането на учениците и подтикването им да започнат да събират разделно боклук<span id="dots">...</span><span id="more"><br>
|
||||
Основни дейности по проекта са поставянето на кошове за разделно събиране в училище и създаване на сайт, в който може да се качват видеа и снимки как ученици изхвърлят разделно боклуци. За всеки материал получават конкретен брой точки (ел.валута), която обменят в училище за награди. За една снимка получават 2 точки, а за едно видео 3 точки. Наградният фонд е спонсориран от учениците с 1лв. и ръководството на училището. Допълнителни точки се получават при споделяне в соц. мрежи.</span></p>
|
||||
|
||||
<button onclick="myFunction()" id="myBtn">Прочети повече</button>
|
||||
|
||||
<script>
|
||||
function myFunction() {
|
||||
var dots = document.getElementById("dots");
|
||||
var moreText = document.getElementById("more");
|
||||
var btnText = document.getElementById("myBtn");
|
||||
|
||||
if (dots.style.display === "none") {
|
||||
dots.style.display = "inline";
|
||||
btnText.innerHTML = "Read more";
|
||||
moreText.style.display = "none";
|
||||
} else {
|
||||
dots.style.display = "none";
|
||||
btnText.innerHTML = "Read less";
|
||||
moreText.style.display = "inline";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="col-6 col-12-medium imp-medium">
|
||||
<span class="image fit"><img src="images/versus.png" alt="" /></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Two -->
|
||||
<section id="two" class="main style2">
|
||||
<div class="container">
|
||||
<div class="row gtr-150">
|
||||
<div class="col-6 col-12-medium">
|
||||
<header class="major">
|
||||
<h2>Раздадени точки:<br />
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<div id="odometer" class="odometer">{{ currencyTotal }}</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Three -->
|
||||
<section id="three" class="main style1 special">
|
||||
<div class="container">
|
||||
<header class="major">
|
||||
<h2>Други дейности по проекта</h2>
|
||||
</header>
|
||||
<div class="row gtr-150">
|
||||
<div class="col-4 col-12-medium">
|
||||
<span class="image fit"><img src="images/logo_blue.png" alt="" /></span>
|
||||
<h3>Информиране за ползите от рециклирането чрез:</h3>
|
||||
<ul>
|
||||
<li>информация на сайта на проекта/ на училището</li>
|
||||
<li>информация на страницата на училището в соц.мрежи</li>
|
||||
<li>презентации по класове</li>
|
||||
<li>плакати на ключови места в училище</li>
|
||||
<li>стените на класните стаи в google classroom</li>
|
||||
<li>тик- ток видеа с образователна и забавна цел</li>
|
||||
</ul>
|
||||
<ul class="actions special">
|
||||
<p></p>
|
||||
<!-- <li><a href="" class="button">More</a></li> -->
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-4 col-12-medium">
|
||||
<span class="image fit"><img src="images/logo_green.png" alt="" /></span>
|
||||
<h3>Учениците ще бъдат мотивирани да участват чрез</h3>
|
||||
<ul>
|
||||
<li>награден фонд за участие в проекта: напитки, вафли, солети и голяма награда ваучер за пазаруване от голяма верига. Наградите се разпределят спрямо натрупаните точки в сайта. Те са лимитирани.</li>
|
||||
<li>Сертификат за участие в извънкласни дейности от името на училището при натрупани минимум 30 точки.</li>
|
||||
<li>Извинение на закъснение при натрупани минимум 24 точки.</li>
|
||||
</ul>
|
||||
<ul class="actions special">
|
||||
<!-- <li><a href="https://steamcommunity.com/groups/NadeRampESports" class="button">More</a></li> -->
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-4 col-12-medium">
|
||||
<span class="image fit"><img src="images/logo_purple.png" alt="" /></span>
|
||||
<h3>Допълнителни дейности:</h3>
|
||||
<p></p>
|
||||
<ul>
|
||||
<li>конкурс за плакат за всички, изучаващи графичен дизайн. С всички плакати ще направим изложба, а с победителите ще направим информационната ни кампания в училище.</li>
|
||||
<li>конкурс за изработване на хендмейд неща от рециклирани материали.</li>
|
||||
<li>голямо парти в двора на училището на тема рециклиране в края на юни месец, когато ще се раздадат сертификатите и големите награди</li>
|
||||
<li>образователна екскурзия</li>
|
||||
<li>обществено полезен труд</li>
|
||||
</ul>
|
||||
<ul class="actions special">
|
||||
<!-- <li><a href="#" class="button">More</a></li> -->
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Four -->
|
||||
<section id="four" class="main style2 special">
|
||||
<div class="container">
|
||||
<header class="major">
|
||||
<h2>Имате интерес?</h2>
|
||||
</header>
|
||||
<p>Регистрирайте се или влезте в акаунта си! </p>
|
||||
<ul class="actions special">
|
||||
<li><a href="#" class="button wide primary">Регистрирайте се!</a></li>
|
||||
<li><a href="#" class="button wide">Влезте!</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Footer -->
|
||||
<section id="footer">
|
||||
<ul class="icons">
|
||||
<!-- <li><a href="#" class="icon brands alt fa-twitter"><span class="label">Twitter</span></a></li> -->
|
||||
<!-- <li><a href="#" class="icon brands alt fa-facebook-f"><span class="label">Facebook</span></a></li> -->
|
||||
<li><a href="https://github.com/yamozha" class="icon brands alt fa-github"><span class="label">GitHub</span></a></li>
|
||||
<li><a href="mailto:boyan+revaluate@bobokara.com" class="icon solid alt fa-envelope"><span class="label">Email</span></a></li>
|
||||
</ul>
|
||||
<ul class="copyright">
|
||||
<li>© edutech</li><li>Design: <a href="https://github.com/yamozha">yamozha</a> and <a href=https://github.com/vassdeniss>vassdeniss</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<!-- Scripts -->
|
||||
<script src="{% static home/js/jquery.min.js"></script>
|
||||
<script src="{% static home/js/jquery.scrolly.min.js"></script>
|
||||
<script src="{% static home/js/browser.min.js"></script>
|
||||
<script src="{% static home/js/breakpoints.min.js"></script>
|
||||
<script src="{% static home/js/util.js"></script>
|
||||
<script src="{% static home/js/main.js"></script>
|
||||
|
||||
</body>
|
||||
{%endblock%}
|
@ -1,7 +1,7 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
|
||||
{% block optionalParams %} <link rel="stylesheet" href="/static/home/css/upload.css"> {% endblock %}
|
||||
{% block optionalParams %} <link rel="stylesheet" href="{% static 'home/css/upload.css' %}"> {% endblock %}
|
||||
|
||||
{% block title %} Upload? {% endblock %}
|
||||
|
||||
|
2
reValuate/uca-url.svg
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="392" width="392" class="pyqrcode"><path transform="scale(8)" stroke="#000" class="pyqrline" d="M4 4.5h7m1 0h1m2 0h2m3 0h3m2 0h1m1 0h1m1 0h2m1 0h1m1 0h3m1 0h7m-41 1h1m5 0h1m1 0h3m2 0h2m2 0h2m1 0h2m1 0h1m1 0h3m4 0h1m1 0h1m5 0h1m-41 1h1m1 0h3m1 0h1m1 0h3m1 0h2m1 0h3m1 0h1m2 0h1m1 0h2m2 0h1m2 0h1m2 0h1m1 0h3m1 0h1m-41 1h1m1 0h3m1 0h1m2 0h1m2 0h2m1 0h1m3 0h1m1 0h1m4 0h1m3 0h1m3 0h1m1 0h3m1 0h1m-41 1h1m1 0h3m1 0h1m6 0h8m1 0h1m1 0h2m2 0h1m1 0h3m1 0h1m1 0h3m1 0h1m-41 1h1m5 0h1m1 0h2m1 0h4m1 0h2m1 0h1m1 0h1m1 0h1m2 0h2m2 0h1m1 0h1m1 0h1m5 0h1m-41 1h7m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h7m-33 1h1m2 0h6m2 0h3m2 0h1m2 0h2m-27 1h3m1 0h1m1 0h1m1 0h1m6 0h6m4 0h4m1 0h4m2 0h3m-41 1h1m1 0h2m3 0h2m1 0h1m4 0h1m1 0h4m5 0h1m2 0h1m1 0h1m2 0h1m1 0h1m2 0h2m-41 1h1m2 0h1m2 0h4m4 0h2m1 0h3m3 0h3m1 0h1m1 0h1m5 0h3m-38 1h1m3 0h2m4 0h1m2 0h1m1 0h1m3 0h1m1 0h3m3 0h1m2 0h3m2 0h1m3 0h1m-40 1h2m2 0h1m1 0h1m4 0h2m1 0h1m2 0h2m3 0h3m1 0h4m1 0h1m1 0h1m3 0h2m-39 1h1m1 0h1m1 0h2m1 0h3m2 0h1m1 0h1m3 0h1m1 0h1m1 0h3m2 0h1m2 0h3m1 0h3m2 0h2m-40 1h1m1 0h1m2 0h1m1 0h3m1 0h1m1 0h6m1 0h2m2 0h1m1 0h2m3 0h2m1 0h1m1 0h1m-38 1h1m3 0h1m2 0h1m2 0h1m1 0h3m1 0h3m1 0h2m1 0h3m1 0h1m3 0h1m1 0h1m1 0h1m1 0h1m2 0h1m-41 1h2m1 0h2m1 0h1m1 0h3m3 0h3m3 0h2m3 0h3m1 0h1m2 0h2m1 0h1m2 0h3m-41 1h1m2 0h2m2 0h2m1 0h4m1 0h1m1 0h2m1 0h2m2 0h3m1 0h2m1 0h4m1 0h2m1 0h2m-41 1h1m1 0h3m1 0h3m1 0h1m1 0h3m3 0h1m1 0h1m5 0h4m2 0h2m3 0h1m-38 1h1m1 0h4m1 0h1m1 0h1m1 0h4m1 0h2m1 0h1m1 0h3m3 0h1m1 0h2m1 0h4m1 0h1m2 0h1m-41 1h2m1 0h4m2 0h1m2 0h4m1 0h10m1 0h1m9 0h1m1 0h1m-41 1h1m2 0h1m3 0h3m4 0h2m5 0h2m2 0h1m2 0h9m3 0h1m-41 1h1m1 0h1m3 0h2m3 0h1m1 0h2m4 0h2m1 0h2m3 0h4m4 0h1m1 0h1m1 0h1m-40 1h1m3 0h1m3 0h1m1 0h1m1 0h1m2 0h4m3 0h2m1 0h1m2 0h1m1 0h1m1 0h3m1 0h2m-38 1h1m1 0h3m1 0h3m2 0h3m1 0h1m1 0h1m2 0h3m5 0h4m1 0h1m1 0h1m2 0h1m-39 1h1m2 0h3m1 0h1m1 0h1m2 0h1m2 0h3m1 0h2m1 0h3m1 0h1m4 0h1m1 0h2m1 0h1m3 0h1m-41 1h2m3 0h3m3 0h2m1 0h2m1 0h1m2 0h4m3 0h1m1 0h2m3 0h2m2 0h1m-39 1h1m1 0h1m1 0h2m2 0h1m3 0h5m1 0h2m1 0h3m1 0h1m1 0h1m8 0h1m3 0h1m-38 1h4m1 0h2m2 0h3m2 0h1m2 0h2m2 0h1m1 0h2m1 0h1m2 0h1m2 0h5m-40 1h1m9 0h1m1 0h2m1 0h1m1 0h3m3 0h1m2 0h3m1 0h8m1 0h2m-41 1h1m1 0h3m1 0h1m1 0h3m3 0h1m3 0h1m1 0h4m5 0h2m1 0h1m1 0h1m1 0h1m-37 1h1m1 0h1m4 0h4m1 0h1m1 0h1m1 0h3m4 0h1m1 0h2m1 0h1m1 0h1m2 0h5m2 0h1m-41 1h1m4 0h2m5 0h1m1 0h1m3 0h1m1 0h2m1 0h2m7 0h5m1 0h1m1 0h1m-33 1h1m1 0h1m1 0h4m1 0h1m1 0h2m1 0h3m1 0h1m1 0h1m2 0h2m3 0h5m-41 1h7m2 0h1m2 0h2m1 0h2m1 0h2m2 0h1m4 0h2m1 0h3m1 0h1m1 0h1m1 0h2m-40 1h1m5 0h1m2 0h1m6 0h1m3 0h1m2 0h1m2 0h1m1 0h1m2 0h2m3 0h2m1 0h1m-40 1h1m1 0h3m1 0h1m1 0h7m2 0h3m2 0h1m3 0h1m1 0h1m1 0h1m1 0h8m-40 1h1m1 0h3m1 0h1m1 0h1m2 0h2m1 0h2m2 0h1m2 0h1m3 0h2m2 0h1m2 0h2m3 0h2m1 0h1m-41 1h1m1 0h3m1 0h1m1 0h3m1 0h2m1 0h1m2 0h1m3 0h2m1 0h4m1 0h2m2 0h1m1 0h1m1 0h2m-40 1h1m5 0h1m5 0h1m1 0h1m2 0h3m1 0h2m1 0h2m1 0h2m1 0h1m1 0h2m1 0h1m1 0h1m1 0h1m-40 1h7m2 0h2m8 0h2m1 0h1m1 0h1m1 0h6m3 0h2m1 0h1"/></svg>
|
After Width: | Height: | Size: 2.9 KiB |
@ -6,10 +6,10 @@ class ImageForm(forms.ModelForm):
|
||||
"""Form for the image model"""
|
||||
class Meta:
|
||||
model = Image
|
||||
fields = ('title', 'image')
|
||||
fields = ('image',)
|
||||
|
||||
class VideoForm(forms.ModelForm):
|
||||
"""Form for the image model"""
|
||||
class Meta:
|
||||
model = Videos
|
||||
fields = ('title', 'video')
|
||||
fields = ('video',)
|
||||
|
39
reValuate/upload/migrations/0001_initial.py
Normal file
@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.1.6 on 2021-03-07 14:14
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import upload.models
|
||||
import upload.validators
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Videos',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('video', models.FileField(upload_to=upload.models.videosPath, validators=[upload.validators.videoValidate])),
|
||||
('user', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'video',
|
||||
'verbose_name_plural': 'videos',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Image',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('image', models.ImageField(upload_to=upload.models.imagesPath, validators=[upload.validators.imageValidate])),
|
||||
('user', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
),
|
||||
]
|
22
reValuate/upload/migrations/0002_balance.py
Normal file
@ -0,0 +1,22 @@
|
||||
# Generated by Django 3.1.6 on 2021-03-11 00:12
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('auth', '0012_alter_user_first_name_max_length'),
|
||||
('upload', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Balance',
|
||||
fields=[
|
||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='auth.user')),
|
||||
('balanceValue', models.IntegerField(default=0)),
|
||||
],
|
||||
),
|
||||
]
|
16
reValuate/upload/migrations/0003_delete_balance.py
Normal file
@ -0,0 +1,16 @@
|
||||
# Generated by Django 3.1.6 on 2021-03-11 00:13
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('upload', '0002_balance'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.DeleteModel(
|
||||
name='Balance',
|
||||
),
|
||||
]
|
0
reValuate/upload/migrations/__init__.py
Normal file
BIN
reValuate/upload/migrations/__pycache__/__init__.cpython-38.pyc
Normal file
@ -2,6 +2,7 @@ from django.db import models
|
||||
from .validators import videoValidate, imageValidate
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
|
||||
# def user_directory._path(instance, filename):
|
||||
# print(request.user.id)
|
||||
# return 'user_{0}/{1}'.format(instance.user.id, filename)
|
||||
@ -18,20 +19,20 @@ def videosPath(instance,filename):
|
||||
|
||||
class Image(models.Model):
|
||||
user = models.OneToOneField(User, on_delete=models.CASCADE, blank=True, null=True)
|
||||
title = models.CharField(max_length=200)
|
||||
# title = models.CharField(max_length=200)
|
||||
image = models.ImageField(upload_to=imagesPath,validators=[imageValidate])
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
# def __str__(self):
|
||||
# return self.title
|
||||
|
||||
class Videos(models.Model):
|
||||
user = models.OneToOneField(User, on_delete=models.CASCADE, blank=True, null=True)
|
||||
title = models.CharField(max_length=100)
|
||||
# title = models.CharField(max_length=100)
|
||||
video = models.FileField(upload_to=videosPath, validators=[videoValidate])
|
||||
|
||||
class Meta:
|
||||
verbose_name = 'video'
|
||||
verbose_name_plural = 'videos'
|
||||
|
||||
def __str__(self):
|
||||
return self.title
|
||||
# def __str__(self):
|
||||
# return self.title
|
||||
|
25
reValuate/users/migrations/0005_auto_20210307_1544.py
Normal file
@ -0,0 +1,25 @@
|
||||
# Generated by Django 3.1.6 on 2021-03-07 13:44
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('users', '0004_auto_20210220_2143'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='balance',
|
||||
name='id',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='balance',
|
||||
name='user',
|
||||
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='auth.user'),
|
||||
),
|
||||
]
|
16
reValuate/users/migrations/0006_delete_balance.py
Normal file
@ -0,0 +1,16 @@
|
||||
# Generated by Django 3.1.6 on 2021-03-11 00:12
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0005_auto_20210307_1544'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.DeleteModel(
|
||||
name='Balance',
|
||||
),
|
||||
]
|
24
reValuate/users/migrations/0007_balance.py
Normal file
@ -0,0 +1,24 @@
|
||||
# Generated by Django 3.1.6 on 2021-03-11 00:13
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('auth', '0012_alter_user_first_name_max_length'),
|
||||
('users', '0006_delete_balance'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Balance',
|
||||
fields=[
|
||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='auth.user')),
|
||||
('balanceValue', models.IntegerField(default=0)),
|
||||
],
|
||||
),
|
||||
]
|
BIN
reValuate/users/migrations/__pycache__/__init__.cpython-38.pyc
Normal file
@ -3,9 +3,5 @@ from django.contrib.auth.models import User
|
||||
|
||||
|
||||
class Balance(models.Model):
|
||||
user = models.OneToOneField(User, on_delete=models.CASCADE, blank=True, null=True)
|
||||
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
|
||||
balanceValue = models.IntegerField(default=0)
|
||||
|
||||
def balanceReturn(self):
|
||||
print(f"Pederas 123 {self.balance}")
|
||||
return self.balance
|
||||
|
@ -2,7 +2,9 @@ from django.contrib.auth.forms import UserCreationForm
|
||||
from django.urls import reverse_lazy
|
||||
from django.views import generic
|
||||
from .models import Balance
|
||||
from django.shortcuts import render, redirect
|
||||
from django.shortcuts import render, redirect, get_object_or_404
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib import messages
|
||||
|
||||
# need to make oauth facebook login
|
||||
class SignUpView(generic.CreateView):
|
||||
@ -11,17 +13,51 @@ class SignUpView(generic.CreateView):
|
||||
template_name = 'registration/signup.html'
|
||||
|
||||
def addToBalance(request):
|
||||
testVar = 5
|
||||
balAdd = Balance.objects.create(balanceValue=testVar, user=request.user.id)
|
||||
balAdd = None
|
||||
if request.method == "POST":
|
||||
tokens = request.POST["tokens"]
|
||||
tokens = int(tokens)
|
||||
user_given = request.POST["user_instance"]
|
||||
try:
|
||||
user_instance = Balance.objects.get(user=user_given)
|
||||
sum_balance = tokens + user_instance.balanceValue
|
||||
balAdd = Balance(balanceValue=sum_balance, user_id=user_instance)
|
||||
# balAdd = balAdd() + testVar
|
||||
balAdd.save()
|
||||
print(balAdd)
|
||||
return render(request, "addBalance.html", {"message": f"Added balance to user {user_given}"})
|
||||
except Balance.DoesNotExist:
|
||||
balAdd = Balance(balanceValue=tokens, user_id=user_given)
|
||||
balAdd.save()
|
||||
return render(request, "addBalance.html", {"message": f"Created and added tokens to {user_given}'s token account"})
|
||||
|
||||
|
||||
else:
|
||||
return render(request,"addBalance.html")
|
||||
|
||||
def removeBalance(request):
|
||||
balRem = None
|
||||
if request.method == "POST":
|
||||
tokens = request.POST["tokens"]
|
||||
tokens = int(tokens)
|
||||
user_given = request.POST["user_instance"]
|
||||
try:
|
||||
user_instance = Balance.objects.get(user=user_given)
|
||||
sum_balance = user_instance.balanceValue - tokens
|
||||
balAdd = Balance(balanceValue=sum_balance, user_id=user_instance)
|
||||
balAdd.save()
|
||||
print(balAdd)
|
||||
except Balance.DoesNotExist:
|
||||
messages.error(request, f"User{user_given} doesn't have balance")
|
||||
return render(request,"getBalance.html", {"userBalance":balAdd})
|
||||
|
||||
else:
|
||||
return render(request,"removeBalance.html")
|
||||
def getBalance(request):
|
||||
balObject = Balance.objects.filter(user=request.user.id)
|
||||
print(dir(balObject))
|
||||
userBalance = balObject.values
|
||||
userBalance = balObject.values("balanceValue")
|
||||
# userBalance = userBalance[0]["balanceValue"]
|
||||
|
||||
|
||||
return render(request,"getBalance.html", {"userBalance":userBalance} )
|
||||
|
||||
|
@ -136,3 +136,4 @@ EMAIL_FILE_PATH = str(BASE_DIR.joinpath('sent_emails'))
|
||||
|
||||
MEDIA_URL = '/media/'
|
||||
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
|
||||
|
||||
|
2
reValuate/yeet
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="49" width="49" class="pyqrcode"><path stroke="#000" class="pyqrline" d="M4 4.5h7m1 0h1m2 0h2m3 0h3m2 0h1m1 0h1m1 0h2m1 0h1m1 0h3m1 0h7m-41 1h1m5 0h1m1 0h3m2 0h2m2 0h2m1 0h2m1 0h1m1 0h3m4 0h1m1 0h1m5 0h1m-41 1h1m1 0h3m1 0h1m1 0h3m1 0h2m1 0h3m1 0h1m2 0h1m1 0h2m2 0h1m2 0h1m2 0h1m1 0h3m1 0h1m-41 1h1m1 0h3m1 0h1m2 0h1m2 0h2m1 0h1m3 0h1m1 0h1m4 0h1m3 0h1m3 0h1m1 0h3m1 0h1m-41 1h1m1 0h3m1 0h1m6 0h8m1 0h1m1 0h2m2 0h1m1 0h3m1 0h1m1 0h3m1 0h1m-41 1h1m5 0h1m1 0h2m1 0h4m1 0h2m1 0h1m1 0h1m1 0h1m2 0h2m2 0h1m1 0h1m1 0h1m5 0h1m-41 1h7m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h7m-33 1h1m2 0h6m2 0h3m2 0h1m2 0h2m-27 1h3m1 0h1m1 0h1m1 0h1m6 0h6m4 0h4m1 0h4m2 0h3m-41 1h1m1 0h2m3 0h2m1 0h1m4 0h1m1 0h4m5 0h1m2 0h1m1 0h1m2 0h1m1 0h1m2 0h2m-41 1h1m2 0h1m2 0h4m4 0h2m1 0h3m3 0h3m1 0h1m1 0h1m5 0h3m-38 1h1m3 0h2m4 0h1m2 0h1m1 0h1m3 0h1m1 0h3m3 0h1m2 0h3m2 0h1m3 0h1m-40 1h2m2 0h1m1 0h1m4 0h2m1 0h1m2 0h2m3 0h3m1 0h4m1 0h1m1 0h1m3 0h2m-39 1h1m1 0h1m1 0h2m1 0h3m2 0h1m1 0h1m3 0h1m1 0h1m1 0h3m2 0h1m2 0h3m1 0h3m2 0h2m-40 1h1m1 0h1m2 0h1m1 0h3m1 0h1m1 0h6m1 0h2m2 0h1m1 0h2m3 0h2m1 0h1m1 0h1m-38 1h1m3 0h1m2 0h1m2 0h1m1 0h3m1 0h3m1 0h2m1 0h3m1 0h1m3 0h1m1 0h1m1 0h1m1 0h1m2 0h1m-41 1h2m1 0h2m1 0h1m1 0h3m3 0h3m3 0h2m3 0h3m1 0h1m2 0h2m1 0h1m2 0h3m-41 1h1m2 0h2m2 0h2m1 0h4m1 0h1m1 0h2m1 0h2m2 0h3m1 0h2m1 0h4m1 0h2m1 0h2m-41 1h1m1 0h3m1 0h3m1 0h1m1 0h3m3 0h1m1 0h1m5 0h4m2 0h2m3 0h1m-38 1h1m1 0h4m1 0h1m1 0h1m1 0h4m1 0h2m1 0h1m1 0h3m3 0h1m1 0h2m1 0h4m1 0h1m2 0h1m-41 1h2m1 0h4m2 0h1m2 0h4m1 0h10m1 0h1m9 0h1m1 0h1m-41 1h1m2 0h1m3 0h3m4 0h2m5 0h2m2 0h1m2 0h9m3 0h1m-41 1h1m1 0h1m3 0h2m3 0h1m1 0h2m4 0h2m1 0h2m3 0h4m4 0h1m1 0h1m1 0h1m-40 1h1m3 0h1m3 0h1m1 0h1m1 0h1m2 0h4m3 0h2m1 0h1m2 0h1m1 0h1m1 0h3m1 0h2m-38 1h1m1 0h3m1 0h3m2 0h3m1 0h1m1 0h1m2 0h3m5 0h4m1 0h1m1 0h1m2 0h1m-39 1h1m2 0h3m1 0h1m1 0h1m2 0h1m2 0h3m1 0h2m1 0h3m1 0h1m4 0h1m1 0h2m1 0h1m3 0h1m-41 1h2m3 0h3m3 0h2m1 0h2m1 0h1m2 0h4m3 0h1m1 0h2m3 0h2m2 0h1m-39 1h1m1 0h1m1 0h2m2 0h1m3 0h5m1 0h2m1 0h3m1 0h1m1 0h1m8 0h1m3 0h1m-38 1h4m1 0h2m2 0h3m2 0h1m2 0h2m2 0h1m1 0h2m1 0h1m2 0h1m2 0h5m-40 1h1m9 0h1m1 0h2m1 0h1m1 0h3m3 0h1m2 0h3m1 0h8m1 0h2m-41 1h1m1 0h3m1 0h1m1 0h3m3 0h1m3 0h1m1 0h4m5 0h2m1 0h1m1 0h1m1 0h1m-37 1h1m1 0h1m4 0h4m1 0h1m1 0h1m1 0h3m4 0h1m1 0h2m1 0h1m1 0h1m2 0h5m2 0h1m-41 1h1m4 0h2m5 0h1m1 0h1m3 0h1m1 0h2m1 0h2m7 0h5m1 0h1m1 0h1m-33 1h1m1 0h1m1 0h4m1 0h1m1 0h2m1 0h3m1 0h1m1 0h1m2 0h2m3 0h5m-41 1h7m2 0h1m2 0h2m1 0h2m1 0h2m2 0h1m4 0h2m1 0h3m1 0h1m1 0h1m1 0h2m-40 1h1m5 0h1m2 0h1m6 0h1m3 0h1m2 0h1m2 0h1m1 0h1m2 0h2m3 0h2m1 0h1m-40 1h1m1 0h3m1 0h1m1 0h7m2 0h3m2 0h1m3 0h1m1 0h1m1 0h1m1 0h8m-40 1h1m1 0h3m1 0h1m1 0h1m2 0h2m1 0h2m2 0h1m2 0h1m3 0h2m2 0h1m2 0h2m3 0h2m1 0h1m-41 1h1m1 0h3m1 0h1m1 0h3m1 0h2m1 0h1m2 0h1m3 0h2m1 0h4m1 0h2m2 0h1m1 0h1m1 0h2m-40 1h1m5 0h1m5 0h1m1 0h1m2 0h3m1 0h2m1 0h2m1 0h2m1 0h1m1 0h2m1 0h1m1 0h1m1 0h1m-40 1h7m2 0h2m8 0h2m1 0h1m1 0h1m1 0h6m3 0h2m1 0h1"/></svg>
|
After Width: | Height: | Size: 2.9 KiB |