mirror of
https://github.com/Rushilwiz/spaceout.git
synced 2025-04-08 14:00:16 -04:00
Chill out potato
This commit is contained in:
parent
66dc39d98b
commit
53b2e4526f
|
@ -9,6 +9,7 @@ djangorestframework = "*"
|
|||
django-cockroachdb = "*"
|
||||
psycopg2 = "*"
|
||||
pillow = "*"
|
||||
django-crispy-forms = "*"
|
||||
|
||||
[dev-packages]
|
||||
isort = "*"
|
||||
|
|
13
site/api/signals.py
Normal file
13
site/api/signals.py
Normal file
|
@ -0,0 +1,13 @@
|
|||
from django.db.models.signals import post_save
|
||||
from django.contrib.auth.models import User
|
||||
from django.dispatch import receiver
|
||||
from .models import Profile
|
||||
|
||||
@receiver(post_save, sender=User)
|
||||
def create_profile(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
Profile.objects.create(user=instance)
|
||||
|
||||
@receiver(post_save, sender=User)
|
||||
def save_profile(sender, instance, **kwargs):
|
||||
instance.profile.save()
|
|
@ -41,7 +41,9 @@ INSTALLED_APPS = [
|
|||
'rest_framework',
|
||||
'api',
|
||||
'djoser',
|
||||
'crispy_forms'
|
||||
]
|
||||
CRISPY_TEMPLATE_PACK = 'bootstrap4'
|
||||
|
||||
|
||||
REST_FRAMEWORK = {
|
||||
|
@ -150,3 +152,6 @@ STATIC_URL = '/static/'
|
|||
STATICFILES_DIRS = [
|
||||
BASE_DIR / 'static',
|
||||
]
|
||||
|
||||
LOGIN_REDIRECT_URL = 'home'
|
||||
LOGIN_URL = 'login'
|
30
site/frontend/forms.py
Normal file
30
site/frontend/forms.py
Normal file
|
@ -0,0 +1,30 @@
|
|||
from django.contrib.auth.models import User
|
||||
from django.contrib.auth.forms import UserCreationForm
|
||||
from django import forms
|
||||
from api.models import Classroom
|
||||
|
||||
|
||||
class UserRegisterForm(UserCreationForm):
|
||||
email = forms.EmailField(label='Email')
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ['username', 'email', 'password1', 'password2']
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(UserRegisterForm, self).__init__(*args, **kwargs)
|
||||
for field in self.fields:
|
||||
self.fields[field].widget.attrs['placeholder'] = self.fields[field].label
|
||||
self.fields[field].widget.attrs['class'] = 'input100'
|
||||
|
||||
|
||||
class ClassroomForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Classroom
|
||||
fields = ['name', 'teacher', 'link', 'period']
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(ClassroomForm, self).__init__(*args, **kwargs)
|
||||
for field in self.fields:
|
||||
self.fields[field].widget.attrs['placeholder'] = self.fields[field].label
|
||||
self.fields[field].widget.attrs['class'] = 'input100'
|
|
@ -1,3 +1,4 @@
|
|||
from django.db import models
|
||||
|
||||
# Create your models here.
|
||||
|
||||
|
|
|
@ -15,8 +15,15 @@ Including another URLconf
|
|||
"""
|
||||
from django.urls import path
|
||||
from .views import *
|
||||
from django.conf import settings
|
||||
from django.conf.urls.static import static
|
||||
from django.contrib.auth import views as auth_views
|
||||
|
||||
urlpatterns = [
|
||||
path('login/', login_view, name='login'),
|
||||
path('register/', register_view, name='register')
|
||||
path('login/', auth_views.LoginView.as_view(template_name='frontend/login.html'), name='login'),
|
||||
path('logout/', auth_views.LogoutView.as_view(template_name='frontend/logout.html'), name='logout'),
|
||||
path('register/', register_view, name='register'),
|
||||
path('create_user/', register_view, name='create_user'),
|
||||
path('', home_view, name='home'),
|
||||
path('classes', class_form_view, name='classroom_form')
|
||||
]
|
||||
|
|
|
@ -1,18 +1,46 @@
|
|||
from django.shortcuts import render
|
||||
from django.contrib import messages
|
||||
from django.shortcuts import render, redirect
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from .forms import *
|
||||
from api.models import *
|
||||
|
||||
|
||||
# Create your views here.
|
||||
def login_view(request):
|
||||
return render(request, 'frontend/login.html')
|
||||
|
||||
|
||||
def logout_view(request):
|
||||
pass
|
||||
|
||||
|
||||
def register_view(request):
|
||||
return render(request, 'frontend/register.html')
|
||||
if request.method == 'POST':
|
||||
form = UserRegisterForm(request.POST)
|
||||
if form.is_valid():
|
||||
user = form.save()
|
||||
|
||||
prof = Profile(user=user)
|
||||
prof.save()
|
||||
|
||||
messages.success(request, f'Your account has been created! You are now able to log in')
|
||||
return redirect('login')
|
||||
else:
|
||||
form = UserRegisterForm()
|
||||
return render(request, 'frontend/register.html', {'form': form})
|
||||
|
||||
@login_required
|
||||
def home_view(request):
|
||||
pass
|
||||
return render(request, 'frontend/temp.html', {'classes': Classroom.objects.filter(student=Profile.objects.get(user=request.user))})
|
||||
|
||||
@login_required
|
||||
def class_form_view(request):
|
||||
if request.method == "POST":
|
||||
form = ClassroomForm(request.POST)
|
||||
if form.is_valid():
|
||||
class_i = Classroom(
|
||||
student=Profile.objects.get(user=request.user),
|
||||
name=form.cleaned_data.get('name'),
|
||||
teacher=form.cleaned_data.get('teacher'),
|
||||
link=form.cleaned_data.get('link'),
|
||||
period=form.cleaned_data.get('period'),
|
||||
)
|
||||
class_i.save()
|
||||
return redirect('home')
|
||||
|
||||
else:
|
||||
form = ClassroomForm
|
||||
|
||||
return render(request, 'frontend/classroomForm.html', {'form': form})
|
||||
|
|
36755
site/static/navbar/css/main.css
Normal file
36755
site/static/navbar/css/main.css
Normal file
File diff suppressed because one or more lines are too long
3368
site/static/navbar/js/main.js
Normal file
3368
site/static/navbar/js/main.js
Normal file
File diff suppressed because one or more lines are too long
85
site/templates/frontend/classroomForm.html
Normal file
85
site/templates/frontend/classroomForm.html
Normal file
|
@ -0,0 +1,85 @@
|
|||
{% extends 'frontend/index.html' %}
|
||||
{% load static %}
|
||||
{% load crispy_forms_tags %}
|
||||
|
||||
|
||||
|
||||
{% block head %}
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="{% static "login/css/index.css" %}"
|
||||
/><!--===============================================================================================-->
|
||||
<link rel="icon" type="image/png" href="{% static "login/images/icons/favicon.ico" %}"/>
|
||||
<!--===============================================================================================-->
|
||||
<link rel="stylesheet" type="text/css" href="{% static "login/vendor/bootstrap/css/bootstrap.min.css" %}">
|
||||
<!--===============================================================================================-->
|
||||
<link rel="stylesheet" type="text/css" href="{% static "login/fonts/font-awesome-4.7.0/css/font-awesome.min.css" %}">
|
||||
<!--===============================================================================================-->
|
||||
<link rel="stylesheet" type="text/css" href="{% static "login/fonts/iconic/css/material-design-iconic-font.min.css" %}">
|
||||
<!--===============================================================================================-->
|
||||
<link rel="stylesheet" type="text/css" href="{% static "login/vendor/animate/animate.css" %}">
|
||||
<!--===============================================================================================-->
|
||||
<link rel="stylesheet" type="text/css" href="{% static "login/vendor/css-hamburgers/hamburgers.min.css" %}">
|
||||
<!--===============================================================================================-->
|
||||
<link rel="stylesheet" type="text/css" href="{% static "login/vendor/animsition/css/animsition.min.css" %}">
|
||||
<!--===============================================================================================-->
|
||||
<link rel="stylesheet" type="text/css" href="{% static "login/vendor/select2/select2.min.css" %}">
|
||||
<!--===============================================================================================-->
|
||||
<link rel="stylesheet" type="text/css" href="{% static "login/vendor/daterangepicker/daterangepicker.css" %}">
|
||||
<!--===============================================================================================-->
|
||||
<link rel="stylesheet" type="text/css" href="{% static "login/css/util.css" %}">
|
||||
<link rel="stylesheet" type="text/css" href="{% static "login/css/main.css" %}">
|
||||
<!--===============================================================================================-->
|
||||
{% endblock head %}
|
||||
|
||||
{% block content %}
|
||||
<div class="login_container">
|
||||
<div class="container-login100" style="background-image: url("{% static 'login/images/bg-01.jpg' %}");">
|
||||
<div class="wrap-login100 p-l-55 p-r-55 p-t-80 p-b-30">
|
||||
<form class="login100-form validate-form" method="POST">
|
||||
{% csrf_token %}
|
||||
<span class="login100-form-title p-b-37">
|
||||
Create a new class!
|
||||
</span>
|
||||
|
||||
{% for field in form %}
|
||||
<div class="wrap-input100 validate-input m-b-10" data-validate="Enter {{ field.label }}">
|
||||
<p style="color: red;">{{ field.errors }}</p>
|
||||
<input type="{{ field.field.widget.input_type}}" name="{{ field.html_name }}" id="{{ field.auto_id }}" required class="input100" placeholder="{{ field.label }}">
|
||||
<span class="focus-input100"></span>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div class="container-login100-form-btn m-b-10">
|
||||
<button class="login100-form-btn">
|
||||
Create!
|
||||
</button>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<a href="{% url 'home' %}" class="txt2 hov1">
|
||||
Back
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div id="dropDownSelect1"></div>
|
||||
{% endblock content %}
|
||||
|
||||
{% block js %}
|
||||
|
||||
<!--===============================================================================================-->
|
||||
<script src="{% static "login/vendor/jquery/jquery-3.2.1.min.js" %}"></script>
|
||||
<!--===============================================================================================-->
|
||||
<script src="{% static "login/vendor/animsition/js/animsition.min.js" %}"></script>
|
||||
<!--===============================================================================================-->
|
||||
<script src="{% static "login/vendor/bootstrap/js/popper.js" %}"></script>
|
||||
<script src="{% static "login/vendor/bootstrap/js/bootstrap.min.js" %}"></script>
|
||||
<!--===============================================================================================-->
|
||||
<script src="{% static "login/vendor/select2/select2.min.js" %}"></script>
|
||||
<!--===============================================================================================-->
|
||||
<script src="{% static "login/vendor/daterangepicker/moment.min.js" %}"></script>
|
||||
<script src="{% static "login/vendor/daterangepicker/daterangepicker.js" %}"></script>
|
||||
<!--===============================================================================================-->
|
||||
<script src="{% static "login/vendor/countdowntime/countdowntime.js" %}"></script>
|
||||
<!--===============================================================================================-->
|
||||
<script src="{% static "login/js/main.js" %}"></script>
|
||||
{% endblock js %}
|
|
@ -10,14 +10,84 @@
|
|||
rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap"
|
||||
/>
|
||||
|
||||
<link rel="stylesheet"
|
||||
href="https://mobirise.com/bootstrap-template/assets/web/assets/mobirise-icons/mobirise-icons.css">
|
||||
<link rel="stylesheet" href="https://mobirise.com/bootstrap-template/assets/tether/tether.min.css">
|
||||
<link rel="stylesheet" href="https://mobirise.com/bootstrap-template/assets/bootstrap/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="https://mobirise.com/bootstrap-template/assets/bootstrap/css/bootstrap-grid.min.css">
|
||||
<link rel="stylesheet" href="https://mobirise.com/bootstrap-template/assets/bootstrap/css/bootstrap-reboot.min.css">
|
||||
<link rel="stylesheet" href="https://mobirise.com/bootstrap-template/assets/dropdown/css/style.css">
|
||||
<link rel="stylesheet" href="https://mobirise.com/bootstrap-template/assets/theme/css/style.css">
|
||||
<link rel="stylesheet" href="https://mobirise.com/bootstrap-template/assets/mobirise/css/mbr-additional.css"
|
||||
type="text/css">
|
||||
|
||||
{% block head %}{% endblock head %}
|
||||
</head>
|
||||
<body>
|
||||
<section class="menu thing cid-qv1frvgcz3" once="menu" id="menu1-5o" data-rv-view="9261">
|
||||
|
||||
|
||||
<nav class="navbar navbar-expand beta-menu navbar-dropdown align-items-center navbar-fixed-top navbar-toggleable-sm bg-color transparent" style="font-size: 20px !important;">
|
||||
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse"
|
||||
data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false"
|
||||
aria-label="Toggle navigation">
|
||||
<div class="hamburger">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</div>
|
||||
</button>
|
||||
<div class="menu-logo">
|
||||
<div class="navbar-brand">
|
||||
|
||||
<span class="navbar-caption-wrap"><a class="navbar-caption text-white display-4"
|
||||
href="{% url 'home' %}" style="font-size: 25px !important;">
|
||||
DO NOT SPACE OUT</a></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||
|
||||
<ul class="navbar-nav nav-dropdown " data-app-modern-menu="true">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link link text-white display-4" style="font-size: 20px !important;" href="{% url 'classroom_form' %}" aria-expanded="false">
|
||||
Classroom
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link link text-white dropdown-toggle display-4" style="font-size: 20px !important;" href="blog.html" data-toggle="dropdown-submenu" aria-expanded="false">
|
||||
Profile
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<a class="text-white dropdown-item" href="slider.html">
|
||||
<h6>
|
||||
Settings
|
||||
</h6>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
</section>
|
||||
<div id="main">
|
||||
<div id="app">
|
||||
{% block content %}{% endblock content %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script src="https://mobirise.com/bootstrap-template/assets/web/assets/jquery/jquery.min.js"></script>
|
||||
<script src="https://mobirise.com/bootstrap-template/assets/popper/popper.min.js"></script>
|
||||
<script src="https://mobirise.com/bootstrap-template/assets/tether/tether.min.js"></script>
|
||||
<script src="https://mobirise.com/bootstrap-template/assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="https://mobirise.com/bootstrap-template/assets/smooth-scroll/smooth-scroll.js"></script>
|
||||
<script src="https://mobirise.com/bootstrap-template/assets/dropdown/js/script.min.js"></script>
|
||||
<script src="https://mobirise.com/bootstrap-template/assets/touch-swipe/jquery.touch-swipe.min.js"></script>
|
||||
<script src="https://mobirise.com/bootstrap-template/assets/jarallax/jarallax.min.js"></script>
|
||||
<script src="https://mobirise.com/bootstrap-template/assets/theme/js/script.js"></script>
|
||||
{% block js %}{% endblock js %}
|
||||
</body>
|
||||
</html>
|
|
@ -1,5 +1,8 @@
|
|||
{% extends 'frontend/index.html' %}
|
||||
{% load static %}
|
||||
{% load crispy_forms_tags %}
|
||||
|
||||
|
||||
|
||||
{% block head %}
|
||||
|
||||
|
@ -32,51 +35,30 @@
|
|||
<div class="login_container">
|
||||
<div class="container-login100" style="background-image: url("{% static 'login/images/bg-01.jpg' %}");">
|
||||
<div class="wrap-login100 p-l-55 p-r-55 p-t-80 p-b-30">
|
||||
<form class="login100-form validate-form">
|
||||
<form class="login100-form validate-form" method="POST">
|
||||
{% csrf_token %}
|
||||
<span class="login100-form-title p-b-37">
|
||||
Sign In
|
||||
</span>
|
||||
|
||||
<div class="wrap-input100 validate-input m-b-10" data-validate="Enter username">
|
||||
<input class="input100" type="text" name="username" placeholder="username">
|
||||
<span class="focus-input100"></span>
|
||||
</div>
|
||||
|
||||
<div class="wrap-input100 validate-input m-b-10" data-validate = "Enter password">
|
||||
<input class="input100" type="password" name="pass" placeholder="password">
|
||||
<span class="focus-input100"></span>
|
||||
</div>
|
||||
|
||||
<div class="container-login100-form-btn">
|
||||
{% for field in form %}
|
||||
<div class="wrap-input100 validate-input m-b-10" data-validate="Enter {{ field.label }}">
|
||||
<p style="color: red;">{{ field.errors }}</p>
|
||||
<input type="{{ field.field.widget.input_type}}" name="{{ field.html_name }}" id="{{ field.auto_id }}" required class="input100" placeholder="{{ field.label }}">
|
||||
<span class="focus-input100"></span>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div class="container-login100-form-btn m-b-10">
|
||||
<button class="login100-form-btn">
|
||||
Sign In
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="text-center p-t-57 p-b-20">
|
||||
<span class="txt1">
|
||||
Or login with
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="flex-c p-b-10">
|
||||
<a href="#" class="login100-social-item">
|
||||
<i class="fa fa-facebook-f"></i>
|
||||
</a>
|
||||
|
||||
<a href="#" class="login100-social-item">
|
||||
<img src="{% static 'login/images/icons/icon-google.png' %}" alt="GOOGLE">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="text-center">
|
||||
<a href="{% url 'register' %}" class="txt2 hov1">
|
||||
Sign Up
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="dropDownSelect1"></div>
|
||||
|
@ -100,4 +82,4 @@
|
|||
<script src="{% static "login/vendor/countdowntime/countdowntime.js" %}"></script>
|
||||
<!--===============================================================================================-->
|
||||
<script src="{% static "login/js/main.js" %}"></script>
|
||||
{% endblock js %}
|
||||
{% endblock js %}
|
||||
|
|
24
site/templates/frontend/logout.html
Normal file
24
site/templates/frontend/logout.html
Normal file
|
@ -0,0 +1,24 @@
|
|||
{% extends 'frontend/index.html' %}
|
||||
{% block content %}
|
||||
<section class="header11 cid-qv7jHqwEI9 mbr-fullscreen mbr-parallax-background" id="header11-5p" data-rv-view="9263">
|
||||
|
||||
<!-- Block parameters controls (Blue "Gear" panel) -->
|
||||
|
||||
<!-- End block parameters -->
|
||||
|
||||
<div class="mbr-overlay" style="opacity: 0.5; background-color: rgb(35, 35, 35);">
|
||||
</div>
|
||||
<div class="container align-left">
|
||||
<div class="media-container-column mbr-white col-md-12">
|
||||
|
||||
<h1 class="mbr-section-title py-3 mbr-fonts-style display-1"><strong>You have been logged out....</strong>
|
||||
</h1>
|
||||
<a class="btn btn-md btn-white-outline display-4"
|
||||
href="{% url 'login' %}">Login again!</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
{% endblock content %}
|
|
@ -32,40 +32,19 @@
|
|||
<div class="login_container">
|
||||
<div class="container-login100" style="background-image: url("{% static 'login/images/bg-01.jpg' %}");">
|
||||
<div class="wrap-login100 p-l-55 p-r-55 p-t-80 p-b-30">
|
||||
<form class="login100-form validate-form">
|
||||
<form class="login100-form validate-form" method="POST" action="{% url 'create_user' %}">
|
||||
{% csrf_token %}
|
||||
<span class="login100-form-title p-b-37">
|
||||
Register
|
||||
</span>
|
||||
|
||||
<div class="wrap-input100 validate-input m-b-10" data-validate="Enter username">
|
||||
<input class="input100" type="username" name="username" placeholder="username">
|
||||
<span class="focus-input100"></span>
|
||||
</div>
|
||||
|
||||
<div class="wrap-input100 validate-input m-b-10" data-validate="Enter email">
|
||||
<input class="input100" type="email" name="email" placeholder="email">
|
||||
<span class="focus-input100"></span>
|
||||
</div>
|
||||
|
||||
<div class="wrap-input100 validate-input m-b-10" data-validate="Enter first name">
|
||||
<input class="input100" type="text" name="firstname" placeholder="first name">
|
||||
<span class="focus-input100"></span>
|
||||
</div>
|
||||
|
||||
<div class="wrap-input100 validate-input m-b-10" data-validate="Enter last name">
|
||||
<input class="input100" type="text" name="lastname" placeholder="lastname">
|
||||
<span class="focus-input100"></span>
|
||||
</div>
|
||||
|
||||
<div class="wrap-input100 validate-input m-b-10" data-validate = "Enter password">
|
||||
<input class="input100" type="password" name="pass1" placeholder="password">
|
||||
<span class="focus-input100"></span>
|
||||
</div>
|
||||
|
||||
<div class="wrap-input100 validate-input m-b-15" data-validate = "Confirm password">
|
||||
<input class="input100" type="password" name="pass2" placeholder="confirm password">
|
||||
<span class="focus-input100"></span>
|
||||
</div>
|
||||
{% for field in form %}
|
||||
<div class="wrap-input100 validate-input m-b-10" data-validate="Enter {{ field.label }}">
|
||||
<p style="color: red;">{{ field.errors }}</p>
|
||||
{{ field }}
|
||||
<span class="focus-input100"></span>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<div class="container-login100-form-btn">
|
||||
<button class="login100-form-btn">
|
||||
|
@ -73,21 +52,7 @@
|
|||
</button>
|
||||
</div>
|
||||
|
||||
<div class="text-center p-t-57 p-b-20">
|
||||
<span class="txt1">
|
||||
Or signin with
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="flex-c p-b-10">
|
||||
<a href="#" class="login100-social-item">
|
||||
<i class="fa fa-facebook-f"></i>
|
||||
</a>
|
||||
|
||||
<a href="#" class="login100-social-item">
|
||||
<img src="{% static 'login/images/icons/icon-google.png' %}" alt="GOOGLE">
|
||||
</a>
|
||||
</div>
|
||||
<div class="m-b-10"></div>
|
||||
|
||||
<div class="text-center">
|
||||
<a href="{% url 'login' %}" class="txt2 hov1">
|
||||
|
|
54
site/templates/frontend/temp.html
Normal file
54
site/templates/frontend/temp.html
Normal file
|
@ -0,0 +1,54 @@
|
|||
{% extends 'frontend/index.html' %}
|
||||
{% load static %}
|
||||
|
||||
{% block content %}
|
||||
<section class="header11 cid-qv7jHqwEI9 mbr-fullscreen mbr-parallax-background" id="header11-5p" data-rv-view="9263">
|
||||
|
||||
<!-- Block parameters controls (Blue "Gear" panel) -->
|
||||
|
||||
<!-- End block parameters -->
|
||||
|
||||
<div class="mbr-overlay" style="opacity: 0.5; background-color: rgb(35, 35, 35);">
|
||||
</div>
|
||||
<div class="container align-left">
|
||||
<div class="media-container-column mbr-white col-md-12">
|
||||
|
||||
<h1 class="mbr-section-title py-3 mbr-fonts-style display-1"><strong>Just Don't Space Out</strong>
|
||||
</h1>
|
||||
<p class="mbr-text py-3 mbr-fonts-style display-5">
|
||||
A speech to text program to help transcribe your online meetings!</p>
|
||||
<div class="mbr-section-btn py-4">
|
||||
<a class="btn btn-md btn-white-outline display-4"
|
||||
href="#">LEARN MORE</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<section class="mbr-section content4 cid-qxVpIJ8WtD" id="content4-na" data-rv-view="8245">
|
||||
|
||||
|
||||
<div class="container">
|
||||
<div class="media-container-row">
|
||||
<div class="title col-12 col-md-8">
|
||||
<h2 class="align-center pb-3 mbr-fonts-style display-2">
|
||||
CLASSES</h2>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
{% for user_class in classes %}
|
||||
{{ user_class }}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endblock content %}
|
||||
|
||||
{% block js %}
|
||||
{% endblock js %}
|
Loading…
Reference in New Issue
Block a user