Skip to content

Commit ee0b224

Browse files
authored
Merge pull request #1 from vecimovic/frontend
Frontend
2 parents 15da2a1 + 940572a commit ee0b224

40 files changed

+2306
-2
lines changed

.gitignore

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
# Django #
2+
*.log
3+
*.pot
4+
*.pyc
5+
__pycache__
6+
db.sqlite3
7+
media
8+
9+
# Backup files #
10+
*.bak
11+
12+
# If you are using PyCharm #
13+
.idea/**/workspace.xml
14+
.idea/**/tasks.xml
15+
.idea/dictionaries
16+
.idea/**/dataSources/
17+
.idea/**/dataSources.ids
18+
.idea/**/dataSources.xml
19+
.idea/**/dataSources.local.xml
20+
.idea/**/sqlDataSources.xml
21+
.idea/**/dynamic.xml
22+
.idea/**/uiDesigner.xml
23+
.idea/**/gradle.xml
24+
.idea/**/libraries
25+
*.iws /out/
26+
27+
# Python #
28+
*.py[cod]
29+
*$py.class
30+
31+
# Distribution / packaging
32+
.Python build/
33+
develop-eggs/
34+
dist/
35+
downloads/
36+
eggs/
37+
.eggs/
38+
lib/
39+
lib64/
40+
parts/
41+
sdist/
42+
var/
43+
wheels/
44+
*.egg-info/
45+
.installed.cfg
46+
*.egg
47+
*.manifest
48+
*.spec
49+
50+
# Installer logs
51+
pip-log.txt
52+
pip-delete-this-directory.txt
53+
54+
# Unit test / coverage reports
55+
htmlcov/
56+
.tox/
57+
.coverage
58+
.coverage.*
59+
.cache
60+
.pytest_cache/
61+
nosetests.xml
62+
coverage.xml
63+
*.cover
64+
.hypothesis/
65+
66+
# Jupyter Notebook
67+
.ipynb_checkpoints
68+
69+
# pyenv
70+
.python-version
71+
72+
# celery
73+
celerybeat-schedule.*
74+
75+
# SageMath parsed files
76+
*.sage.py
77+
78+
# Environments
79+
.env
80+
.venv
81+
env/
82+
venv/
83+
ENV/
84+
env.bak/
85+
venv.bak/
86+
87+
# mkdocs documentation
88+
/site
89+
90+
# mypy
91+
.mypy_cache/
92+
93+
# Sublime Text #
94+
*.tmlanguage.cache
95+
*.tmPreferences.cache
96+
*.stTheme.cache
97+
*.sublime-workspace
98+
*.sublime-project
99+
100+
# sftp configuration file
101+
sftp-config.json
102+
103+
# Package control specific files Package
104+
Control.last-run
105+
Control.ca-list
106+
Control.ca-bundle
107+
Control.system-ca-bundle
108+
GitHub.sublime-settings
109+
110+
# Visual Studio Code #
111+
.vscode/*
112+
!.vscode/settings.json
113+
!.vscode/tasks.json
114+
!.vscode/launch.json
115+
!.vscode/extensions.json
116+
.history

administration/__init__.py

Whitespace-only changes.

administration/admin.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from django.contrib import admin
2+
from .models import Role, User
3+
4+
# Register your models here.
5+
admin.site.register(Role)
6+
admin.site.register(User)

administration/apps.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from django.apps import AppConfig
2+
3+
4+
class AdministrationConfig(AppConfig):
5+
name = 'administration'
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Generated by Django 3.0.8 on 2020-07-20 09:44
2+
3+
import django.contrib.auth.models
4+
import django.contrib.auth.validators
5+
from django.db import migrations, models
6+
import django.utils.timezone
7+
8+
9+
class Migration(migrations.Migration):
10+
11+
initial = True
12+
13+
dependencies = [
14+
('auth', '0011_update_proxy_permissions'),
15+
]
16+
17+
operations = [
18+
migrations.CreateModel(
19+
name='Role',
20+
fields=[
21+
('id', models.PositiveSmallIntegerField(choices=[(1, 'student'), (2, 'djelatnik')], primary_key=True, serialize=False)),
22+
],
23+
),
24+
migrations.CreateModel(
25+
name='User',
26+
fields=[
27+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
28+
('password', models.CharField(max_length=128, verbose_name='password')),
29+
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
30+
('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
31+
('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
32+
('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
33+
('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
34+
('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
35+
('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
36+
('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
37+
('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
38+
('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
39+
('roles', models.ManyToManyField(to='administration.Role')),
40+
('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
41+
],
42+
options={
43+
'verbose_name': 'user',
44+
'verbose_name_plural': 'users',
45+
'abstract': False,
46+
},
47+
managers=[
48+
('objects', django.contrib.auth.models.UserManager()),
49+
],
50+
),
51+
]

administration/migrations/__init__.py

Whitespace-only changes.

administration/models.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from django.contrib.auth.models import AbstractUser
2+
from django.db import models
3+
4+
5+
# Create your models here.
6+
class Role(models.Model):
7+
8+
STUDENT = 1
9+
DJELATNIK = 2
10+
11+
ROLE_CHOICES = (
12+
(STUDENT, 'student'),
13+
(DJELATNIK, 'djelatnik'),
14+
)
15+
16+
id = models.PositiveSmallIntegerField(choices=ROLE_CHOICES, primary_key=True)
17+
18+
def __str__(self):
19+
return self.get_id_display()
20+
21+
class User(AbstractUser):
22+
roles = models.ManyToManyField(Role)

administration/tests.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from django.test import TestCase
2+
3+
# Create your tests here.

administration/urls.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from django.urls import path
2+
3+
from . import views
4+
5+
urlpatterns = [
6+
path('index/', views.index, name='index'),
7+
path('', views.login, name='login'),
8+
]

administration/views.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from django.shortcuts import render
2+
3+
# Create your views here.
4+
def login(request):
5+
return render(request, 'login.html')
6+
7+
def index(request):
8+
return render(request, 'index.html')

0 commit comments

Comments
 (0)