diff --git a/application/apps.py b/application/apps.py
deleted file mode 100644
index 8acf66b..0000000
--- a/application/apps.py
+++ /dev/null
@@ -1,5 +0,0 @@
-from django.apps import AppConfig
-
-
-class ApplicationConfig(AppConfig):
- name = 'application'
diff --git a/application/migrations/0002_auto_20190410_1458.py b/application/migrations/0002_auto_20190410_1458.py
deleted file mode 100644
index a479c69..0000000
--- a/application/migrations/0002_auto_20190410_1458.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Generated by Django 2.2 on 2019-04-10 11:58
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('application', '0001_initial'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='user',
- name='map_level_id',
- field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='application.MapLevel'),
- ),
- ]
diff --git a/application/serializer.py b/application/serializer.py
deleted file mode 100644
index 199a81c..0000000
--- a/application/serializer.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from .models import User
-from rest_framework import serializers
-
-
-class UserSerializer(serializers.ModelSerializer):
- class Meta:
- model = User
- fields = '__all__'
-
- def create(self, validated_data):
- user = User(
- email=validated_data['email'],
- name=validated_data['username']
- )
- user.set_password(validated_data['password'])
- user.save()
- return user
diff --git a/application/static/application/images/036277957c53a3c967ee327ca92c48ec.jpg b/application/static/application/images/036277957c53a3c967ee327ca92c48ec.jpg
deleted file mode 100644
index a812085..0000000
Binary files a/application/static/application/images/036277957c53a3c967ee327ca92c48ec.jpg and /dev/null differ
diff --git a/application/static/application/images/088e3864a827bf240cc83cab3ac49ae3.jpg b/application/static/application/images/088e3864a827bf240cc83cab3ac49ae3.jpg
deleted file mode 100644
index 8f7bfec..0000000
Binary files a/application/static/application/images/088e3864a827bf240cc83cab3ac49ae3.jpg and /dev/null differ
diff --git a/application/static/application/images/100d6380c5c7b6ed8bad87e1bfcb37b1.jpg b/application/static/application/images/100d6380c5c7b6ed8bad87e1bfcb37b1.jpg
deleted file mode 100644
index f88b3ee..0000000
Binary files a/application/static/application/images/100d6380c5c7b6ed8bad87e1bfcb37b1.jpg and /dev/null differ
diff --git a/application/static/application/images/1228aca331d5d255cb1a8e8f514ff23a.jpg b/application/static/application/images/1228aca331d5d255cb1a8e8f514ff23a.jpg
deleted file mode 100644
index dbff5c9..0000000
Binary files a/application/static/application/images/1228aca331d5d255cb1a8e8f514ff23a.jpg and /dev/null differ
diff --git a/application/static/application/images/1bb1cc51e1bb1f630187b0241c07bc77.jpg b/application/static/application/images/1bb1cc51e1bb1f630187b0241c07bc77.jpg
deleted file mode 100644
index cd02faf..0000000
Binary files a/application/static/application/images/1bb1cc51e1bb1f630187b0241c07bc77.jpg and /dev/null differ
diff --git a/application/static/application/images/1bba97d16691eaf3f7680662b2fdb864.jpg b/application/static/application/images/1bba97d16691eaf3f7680662b2fdb864.jpg
deleted file mode 100644
index 3d614fa..0000000
Binary files a/application/static/application/images/1bba97d16691eaf3f7680662b2fdb864.jpg and /dev/null differ
diff --git a/application/static/application/images/223d5b8ca9d997bf8c81fe63aca7b827.jpg b/application/static/application/images/223d5b8ca9d997bf8c81fe63aca7b827.jpg
deleted file mode 100644
index aab8f79..0000000
Binary files a/application/static/application/images/223d5b8ca9d997bf8c81fe63aca7b827.jpg and /dev/null differ
diff --git a/application/static/application/images/24b49ce490ad80cc309f8c5359b47ea7.jpg b/application/static/application/images/24b49ce490ad80cc309f8c5359b47ea7.jpg
deleted file mode 100644
index b226e8b..0000000
Binary files a/application/static/application/images/24b49ce490ad80cc309f8c5359b47ea7.jpg and /dev/null differ
diff --git a/application/static/application/images/2aa87405cdae7f01af63778c74823f01.jpg b/application/static/application/images/2aa87405cdae7f01af63778c74823f01.jpg
deleted file mode 100644
index 5b37f26..0000000
Binary files a/application/static/application/images/2aa87405cdae7f01af63778c74823f01.jpg and /dev/null differ
diff --git a/application/static/application/images/2d631cdbeeb44d028f5ba1a3ce975290.jpg b/application/static/application/images/2d631cdbeeb44d028f5ba1a3ce975290.jpg
deleted file mode 100644
index 4524400..0000000
Binary files a/application/static/application/images/2d631cdbeeb44d028f5ba1a3ce975290.jpg and /dev/null differ
diff --git a/application/static/application/images/2d71899913a983c3002968f9b02ebf29.jpg b/application/static/application/images/2d71899913a983c3002968f9b02ebf29.jpg
deleted file mode 100644
index 10ec85a..0000000
Binary files a/application/static/application/images/2d71899913a983c3002968f9b02ebf29.jpg and /dev/null differ
diff --git a/application/static/application/images/41fc3ecc512c12e608f25cb172428ad0.jpg b/application/static/application/images/41fc3ecc512c12e608f25cb172428ad0.jpg
deleted file mode 100644
index 19640fc..0000000
Binary files a/application/static/application/images/41fc3ecc512c12e608f25cb172428ad0.jpg and /dev/null differ
diff --git a/application/static/application/images/48a6fe35738bc85aafa6a4ffa49d13d8.jpg b/application/static/application/images/48a6fe35738bc85aafa6a4ffa49d13d8.jpg
deleted file mode 100644
index ea7a473..0000000
Binary files a/application/static/application/images/48a6fe35738bc85aafa6a4ffa49d13d8.jpg and /dev/null differ
diff --git a/application/static/application/images/5863db615937629a28dd4631df298a9a.jpg b/application/static/application/images/5863db615937629a28dd4631df298a9a.jpg
deleted file mode 100644
index 68e2780..0000000
Binary files a/application/static/application/images/5863db615937629a28dd4631df298a9a.jpg and /dev/null differ
diff --git a/application/static/application/images/596ff7cec8d33568a7125942e0d65e97.jpg b/application/static/application/images/596ff7cec8d33568a7125942e0d65e97.jpg
deleted file mode 100644
index 2dc4799..0000000
Binary files a/application/static/application/images/596ff7cec8d33568a7125942e0d65e97.jpg and /dev/null differ
diff --git a/application/static/application/images/61e44c91a67b78e75d34732a406481c4.jpg b/application/static/application/images/61e44c91a67b78e75d34732a406481c4.jpg
deleted file mode 100644
index ab2578a..0000000
Binary files a/application/static/application/images/61e44c91a67b78e75d34732a406481c4.jpg and /dev/null differ
diff --git a/application/static/application/images/7dbb34e2df9affd88b8fe22001c75a63.jpg b/application/static/application/images/7dbb34e2df9affd88b8fe22001c75a63.jpg
deleted file mode 100644
index 119056a..0000000
Binary files a/application/static/application/images/7dbb34e2df9affd88b8fe22001c75a63.jpg and /dev/null differ
diff --git a/application/static/application/images/88af5919e223380cf18cb18a83120883.jpg b/application/static/application/images/88af5919e223380cf18cb18a83120883.jpg
deleted file mode 100644
index dc9691d..0000000
Binary files a/application/static/application/images/88af5919e223380cf18cb18a83120883.jpg and /dev/null differ
diff --git a/application/static/application/images/a29924738ff4678ca4d8c236922f2174.jpg b/application/static/application/images/a29924738ff4678ca4d8c236922f2174.jpg
deleted file mode 100644
index b3b4c71..0000000
Binary files a/application/static/application/images/a29924738ff4678ca4d8c236922f2174.jpg and /dev/null differ
diff --git a/application/static/application/images/a8bccda33849e646e3a33f67dbb130f9.jpg b/application/static/application/images/a8bccda33849e646e3a33f67dbb130f9.jpg
deleted file mode 100644
index e2280d9..0000000
Binary files a/application/static/application/images/a8bccda33849e646e3a33f67dbb130f9.jpg and /dev/null differ
diff --git a/application/static/application/images/ab50a705e193a05484d4dc83602cbf6b.jpg b/application/static/application/images/ab50a705e193a05484d4dc83602cbf6b.jpg
deleted file mode 100644
index 200d912..0000000
Binary files a/application/static/application/images/ab50a705e193a05484d4dc83602cbf6b.jpg and /dev/null differ
diff --git a/application/static/application/images/adca77f65be84ee79c86971a62e0aa26.jpg b/application/static/application/images/adca77f65be84ee79c86971a62e0aa26.jpg
deleted file mode 100644
index 0a8a74b..0000000
Binary files a/application/static/application/images/adca77f65be84ee79c86971a62e0aa26.jpg and /dev/null differ
diff --git a/application/static/application/images/adccb4841c392877b5c3b248c536f0a0.jpg b/application/static/application/images/adccb4841c392877b5c3b248c536f0a0.jpg
deleted file mode 100644
index f66665c..0000000
Binary files a/application/static/application/images/adccb4841c392877b5c3b248c536f0a0.jpg and /dev/null differ
diff --git a/application/static/application/images/b07ee8ae7afc3200222fd742971151f5.jpg b/application/static/application/images/b07ee8ae7afc3200222fd742971151f5.jpg
deleted file mode 100644
index 0279067..0000000
Binary files a/application/static/application/images/b07ee8ae7afc3200222fd742971151f5.jpg and /dev/null differ
diff --git a/application/static/application/images/ba77dc8fc4606890db2a3110030ec12c.jpg b/application/static/application/images/ba77dc8fc4606890db2a3110030ec12c.jpg
deleted file mode 100644
index 2cd0b83..0000000
Binary files a/application/static/application/images/ba77dc8fc4606890db2a3110030ec12c.jpg and /dev/null differ
diff --git a/application/static/application/images/background.jpg b/application/static/application/images/background.jpg
deleted file mode 100644
index 8821c05..0000000
Binary files a/application/static/application/images/background.jpg and /dev/null differ
diff --git a/application/static/application/images/c30b0cfec339ee061c3c5e57eda55bc2.jpg b/application/static/application/images/c30b0cfec339ee061c3c5e57eda55bc2.jpg
deleted file mode 100644
index eed243f..0000000
Binary files a/application/static/application/images/c30b0cfec339ee061c3c5e57eda55bc2.jpg and /dev/null differ
diff --git a/application/static/application/images/cea1d738950cf0e3f41c87fab7f78223.jpg b/application/static/application/images/cea1d738950cf0e3f41c87fab7f78223.jpg
deleted file mode 100644
index e29d513..0000000
Binary files a/application/static/application/images/cea1d738950cf0e3f41c87fab7f78223.jpg and /dev/null differ
diff --git a/application/static/application/images/d03a6edea9f887c67074e87d61ae978f.jpg b/application/static/application/images/d03a6edea9f887c67074e87d61ae978f.jpg
deleted file mode 100644
index 5901b0f..0000000
Binary files a/application/static/application/images/d03a6edea9f887c67074e87d61ae978f.jpg and /dev/null differ
diff --git a/application/static/application/images/d213b287ec51fb4781ae8ec84bbca0c4.jpg b/application/static/application/images/d213b287ec51fb4781ae8ec84bbca0c4.jpg
deleted file mode 100644
index 65cfa13..0000000
Binary files a/application/static/application/images/d213b287ec51fb4781ae8ec84bbca0c4.jpg and /dev/null differ
diff --git a/application/static/application/images/e12a22907f702159e4d157931823dcda.jpg b/application/static/application/images/e12a22907f702159e4d157931823dcda.jpg
deleted file mode 100644
index f6789e7..0000000
Binary files a/application/static/application/images/e12a22907f702159e4d157931823dcda.jpg and /dev/null differ
diff --git a/application/static/application/images/eafa01cc053b1f852855a4efad27aa6c.jpg b/application/static/application/images/eafa01cc053b1f852855a4efad27aa6c.jpg
deleted file mode 100644
index 7deaeb3..0000000
Binary files a/application/static/application/images/eafa01cc053b1f852855a4efad27aa6c.jpg and /dev/null differ
diff --git a/application/static/application/images/fda0f115291318ad86e443fc3eddecff.jpg b/application/static/application/images/fda0f115291318ad86e443fc3eddecff.jpg
deleted file mode 100644
index 5fd0943..0000000
Binary files a/application/static/application/images/fda0f115291318ad86e443fc3eddecff.jpg and /dev/null differ
diff --git a/application/static/application/images/planeta.jpeg b/application/static/application/images/planeta.jpeg
deleted file mode 100644
index 1c48cd4..0000000
Binary files a/application/static/application/images/planeta.jpeg and /dev/null differ
diff --git a/application/static/application/styles/base.css b/application/static/application/styles/base.css
deleted file mode 100644
index cb91e92..0000000
--- a/application/static/application/styles/base.css
+++ /dev/null
@@ -1,5 +0,0 @@
-
-.siqnup-form {
- max-width: 30%;
- margin: 32px auto 0 auto;
-}
\ No newline at end of file
diff --git a/application/templates/application/layout/base.html b/application/templates/application/layout/base.html
deleted file mode 100644
index a2fb5e1..0000000
--- a/application/templates/application/layout/base.html
+++ /dev/null
@@ -1,23 +0,0 @@
-{% load static %}
-
-
-
-
-
-
- E-learning
-
-
-
-
-
-
-
-
-
- {% block headers %}{% endblock %}
-
-
-{% block content %}{% endblock %}
-
-
\ No newline at end of file
diff --git a/application/templates/application/signin.html b/application/templates/application/signin.html
deleted file mode 100644
index 566549b..0000000
--- a/application/templates/application/signin.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- Title
-
-
-
-
-
\ No newline at end of file
diff --git a/application/templates/application/signup.html b/application/templates/application/signup.html
deleted file mode 100644
index 062a5ce..0000000
--- a/application/templates/application/signup.html
+++ /dev/null
@@ -1,25 +0,0 @@
-{% extends 'application/layout/base.html' %}
-
-
-{% block content %}
-
-{% endblock %}
\ No newline at end of file
diff --git a/application/urls.py b/application/urls.py
deleted file mode 100644
index 201f27e..0000000
--- a/application/urls.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from django.urls import path
-from django.contrib import admin
-
-from application import views
-
-urlpatterns = [
- path('signup/', views.show_signup),
- path('admin/', admin.site.urls),
-]
\ No newline at end of file
diff --git a/application/views.py b/application/views.py
deleted file mode 100644
index 1bb124e..0000000
--- a/application/views.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# for serializer
-from django.http import HttpResponse
-
-from .models import User
-from rest_framework import generics
-from .serializer import UserSerializer
-
-# for signup function
-from django.shortcuts import render, redirect
-
-
-
-# serializer registragion
-# class UserList(generics.ListAPIView):
-# queryset = User.objects.all()
-# serializer_class = UserSerializer
-# another one
-
-
-def show_signup(request):
- if request.method == 'POST':
- email = request.POST.get('email')
- name = request.POST.get('name')
- password = request.POST.get('pass')
- user = User(email=email, name=name, password=password)
- user.save()
- return HttpResponse('200')
-
- return render(request, 'application/signup.html')
-
-
-
diff --git a/project/settings.py b/project/settings.py
index 24aa19c..e34d162 100644
--- a/project/settings.py
+++ b/project/settings.py
@@ -37,9 +37,8 @@
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
- 'application', # include app
- #'django_summernote',
- 'rest_framework', # add django rest framework
+ 'users',
+ 'rest_framework',
#'rest_framework_authtoken',
#'djoser',
]
diff --git a/project/urls.py b/project/urls.py
index 4ae359a..d339652 100644
--- a/project/urls.py
+++ b/project/urls.py
@@ -13,10 +13,19 @@
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
-from django.contrib import admin
+
from django.urls import path, include
+from django.contrib import admin
+
+from rest_framework.routers import DefaultRouter
+from users.views import RegistrationView, UserViewSet
+
+router = DefaultRouter()
+
+router.register(r'users', UserViewSet)
urlpatterns = [
- # path('admin/', admin.site.urls),
- path('', include('application.urls'))
-]
+ path('api/', include(router.urls)),
+ path('api/signup/', RegistrationView.as_view(), name='signup'),
+ path('admin/', admin.site.urls),
+]
\ No newline at end of file
diff --git a/application/__init__.py b/snippets/__init__.py
similarity index 100%
rename from application/__init__.py
rename to snippets/__init__.py
diff --git a/snippets/admin.py b/snippets/admin.py
new file mode 100644
index 0000000..ea5d68b
--- /dev/null
+++ b/snippets/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/snippets/apps.py b/snippets/apps.py
new file mode 100644
index 0000000..81ca843
--- /dev/null
+++ b/snippets/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class SnippetsConfig(AppConfig):
+ name = 'snippets'
diff --git a/application/migrations/__init__.py b/snippets/migrations/__init__.py
similarity index 100%
rename from application/migrations/__init__.py
rename to snippets/migrations/__init__.py
diff --git a/snippets/models.py b/snippets/models.py
new file mode 100644
index 0000000..fd18c6e
--- /dev/null
+++ b/snippets/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/application/tests.py b/snippets/tests.py
similarity index 95%
rename from application/tests.py
rename to snippets/tests.py
index 7ce503c..de8bdc0 100644
--- a/application/tests.py
+++ b/snippets/tests.py
@@ -1,3 +1,3 @@
-from django.test import TestCase
-
-# Create your tests here.
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/snippets/views.py b/snippets/views.py
new file mode 100644
index 0000000..c60c790
--- /dev/null
+++ b/snippets/views.py
@@ -0,0 +1,3 @@
+from django.shortcuts import render
+
+# Create your views here.
diff --git a/users/__init__.py b/users/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/application/admin.py b/users/admin.py
similarity index 94%
rename from application/admin.py
rename to users/admin.py
index c444238..9c8963b 100644
--- a/application/admin.py
+++ b/users/admin.py
@@ -1,5 +1,5 @@
-from django.contrib import admin
-
-from .models import User
-
-admin.site.register(User)
+from django.contrib import admin
+
+from .models import User
+
+admin.site.register(User)
diff --git a/users/apps.py b/users/apps.py
new file mode 100644
index 0000000..2444220
--- /dev/null
+++ b/users/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class UsersConfig(AppConfig):
+ name = 'users'
diff --git a/application/migrations/0001_initial.py b/users/migrations/0001_initial.py
similarity index 83%
rename from application/migrations/0001_initial.py
rename to users/migrations/0001_initial.py
index 19d547a..8fbac38 100644
--- a/application/migrations/0001_initial.py
+++ b/users/migrations/0001_initial.py
@@ -1,102 +1,102 @@
-# Generated by Django 2.2 on 2019-04-10 11:25
-
-from django.db import migrations, models
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- initial = True
-
- dependencies = [
- ]
-
- operations = [
- migrations.CreateModel(
- name='Block',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ],
- ),
- migrations.CreateModel(
- name='Map',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ],
- ),
- migrations.CreateModel(
- name='MapLevel',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('level_name', models.CharField(default=None, max_length=50)),
- ('block_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='application.Block')),
- ],
- ),
- migrations.CreateModel(
- name='Task',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('score', models.IntegerField(default=0)),
- ('type', models.CharField(default=None, max_length=50)),
- ('description', models.TextField(default=None)),
- ('map_level_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='application.MapLevel')),
- ],
- ),
- migrations.CreateModel(
- name='User',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('name', models.CharField(default=None, max_length=50)),
- ('email', models.EmailField(default=None, max_length=50, unique=True)),
- ('password', models.CharField(default=None, max_length=50)),
- ('level', models.IntegerField(default=1)),
- ('map_level_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='application.MapLevel')),
- ],
- ),
- migrations.CreateModel(
- name='Theory',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('text', models.TextField(default=None)),
- ('video', models.URLField(default=None)),
- ('task_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='application.Task')),
- ],
- ),
- migrations.CreateModel(
- name='TaskType',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('name_type', models.TextField(default=None)),
- ('task_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='application.Task')),
- ],
- ),
- migrations.CreateModel(
- name='Solution',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('task_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='application.Task')),
- ('user_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='application.User')),
- ],
- ),
- migrations.CreateModel(
- name='ProgramTests',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('input', models.TextField(default=None)),
- ('output', models.TextField(default=None)),
- ('type_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='application.TaskType')),
- ],
- ),
- migrations.CreateModel(
- name='Chat',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('task_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='application.Task')),
- ],
- ),
- migrations.AddField(
- model_name='block',
- name='map_id',
- field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='application.Map'),
- ),
- ]
+# Generated by Django 2.2 on 2019-04-18 17:36
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Block',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ],
+ ),
+ migrations.CreateModel(
+ name='Map',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ],
+ ),
+ migrations.CreateModel(
+ name='MapLevel',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('level_name', models.CharField(default=None, max_length=50)),
+ ('block_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='users.Block')),
+ ],
+ ),
+ migrations.CreateModel(
+ name='Task',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('score', models.IntegerField(default=0)),
+ ('type', models.CharField(default=None, max_length=50)),
+ ('description', models.TextField(default=None)),
+ ('map_level_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='users.MapLevel')),
+ ],
+ ),
+ migrations.CreateModel(
+ name='User',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('name', models.CharField(default=None, max_length=50)),
+ ('email', models.EmailField(default=None, max_length=50, unique=True)),
+ ('password', models.CharField(default=None, max_length=50)),
+ ('level', models.IntegerField(default=1)),
+ ('map_level_id', models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='users.MapLevel')),
+ ],
+ ),
+ migrations.CreateModel(
+ name='Theory',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('text', models.TextField(default=None)),
+ ('video', models.URLField(default=None)),
+ ('task_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='users.Task')),
+ ],
+ ),
+ migrations.CreateModel(
+ name='TaskType',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('name_type', models.TextField(default=None)),
+ ('task_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='users.Task')),
+ ],
+ ),
+ migrations.CreateModel(
+ name='Solution',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('task_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='users.Task')),
+ ('user_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='users.User')),
+ ],
+ ),
+ migrations.CreateModel(
+ name='ProgramTests',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('input', models.TextField(default=None)),
+ ('output', models.TextField(default=None)),
+ ('type_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='users.TaskType')),
+ ],
+ ),
+ migrations.CreateModel(
+ name='Chat',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('task_id', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='users.Task')),
+ ],
+ ),
+ migrations.AddField(
+ model_name='block',
+ name='map_id',
+ field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='users.Map'),
+ ),
+ ]
diff --git a/users/migrations/__init__.py b/users/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/application/models.py b/users/models.py
similarity index 95%
rename from application/models.py
rename to users/models.py
index 2b2a838..6d2eaa1 100644
--- a/application/models.py
+++ b/users/models.py
@@ -1,60 +1,63 @@
-from django.db import models
-
-
-class Map(models.Model):
- image = 0 # mock field
-
-
-class Block(models.Model):
- map_id = models.ForeignKey(Map, on_delete=models.CASCADE, default=None)
- image = 0 # mock field
-
-
-class MapLevel(models.Model):
- level_name = models.CharField(max_length=50, default=None)
- block_id = models.ForeignKey(Block, on_delete=models.CASCADE, default=None)
-
-
-class User(models.Model):
- name = models.CharField(max_length=50, default=None) # User name
- email = models.EmailField(max_length=50, default=None, unique=True) # Email
- password = models.CharField(max_length=50, default=None) # Password
- level = models.IntegerField(default=1) # User level
- map_level_id = models.ForeignKey(MapLevel, on_delete=models.CASCADE, default=None, null=True)
- photo = 0 # mock field
-
- def __str__(self):
- return str(self.name) + str(self.email)
-
-
-class Task(models.Model):
- score = models.IntegerField(default=0)
- type = models.CharField(max_length=50, default=None)
- description = models.TextField(default=None)
- map_level_id = models.ForeignKey(MapLevel, on_delete=models.CASCADE, default=None)
-
-
-class Chat(models.Model):
- task_id = models.ForeignKey(Task, on_delete=models.CASCADE, default=None)
-
-
-class Solution(models.Model):
- task_id = models.ForeignKey(Task, on_delete=models.CASCADE, default=None)
- user_id = models.ForeignKey(User, on_delete=models.CASCADE, default=None)
-
-
-class Theory(models.Model):
- task_id = models.ForeignKey(Task, on_delete=models.CASCADE, default=None)
- text = models.TextField(default=None)
- video = models.URLField(default=None)
-
-
-class TaskType(models.Model):
- task_id = models.ForeignKey(Task, on_delete=models.CASCADE, default=None)
- name_type = models.TextField(default=None)
-
-
-class ProgramTests(models.Model):
- input = models.TextField(default=None)
- output = models.TextField(default=None)
- type_id = models.ForeignKey(TaskType, on_delete=models.CASCADE, default=None)
+from django.db import models
+
+
+class Map(models.Model):
+ image = 0 # mock field
+
+
+class Block(models.Model):
+ map_id = models.ForeignKey(Map, on_delete=models.CASCADE, default=None)
+ image = 0 # mock field
+
+
+class MapLevel(models.Model):
+ level_name = models.CharField(max_length=50, default=None)
+ block_id = models.ForeignKey(Block, on_delete=models.CASCADE, default=None)
+
+
+class User(models.Model):
+ name = models.CharField(max_length=50, default=None) # User name
+ email = models.EmailField(max_length=50, default=None, unique=True) # Email
+ password = models.CharField(max_length=50, default=None) # Password
+ level = models.IntegerField(default=1) # User level
+ map_level_id = models.ForeignKey(MapLevel, on_delete=models.CASCADE, default=None, null=True)
+ photo = 0 # mock field
+
+ def __str__(self):
+ return str(self.name) + str(self.email)
+
+
+class Task(models.Model):
+ score = models.IntegerField(default=0)
+ type = models.CharField(max_length=50, default=None)
+ description = models.TextField(default=None)
+ map_level_id = models.ForeignKey(MapLevel, on_delete=models.CASCADE, default=None)
+
+
+class Chat(models.Model):
+ task_id = models.ForeignKey(Task, on_delete=models.CASCADE, default=None)
+
+
+class Solution(models.Model):
+ task_id = models.ForeignKey(Task, on_delete=models.CASCADE, default=None)
+ user_id = models.ForeignKey(User, on_delete=models.CASCADE, default=None)
+
+
+class Theory(models.Model):
+ task_id = models.ForeignKey(Task, on_delete=models.CASCADE, default=None)
+ text = models.TextField(default=None)
+ video = models.URLField(default=None)
+
+
+class TaskType(models.Model):
+ task_id = models.ForeignKey(Task, on_delete=models.CASCADE, default=None)
+ name_type = models.TextField(default=None)
+
+
+class ProgramTests(models.Model):
+ input = models.TextField(default=None)
+ output = models.TextField(default=None)
+ type_id = models.ForeignKey(TaskType, on_delete=models.CASCADE, default=None)
+
+
+# refactor that file
diff --git a/users/serializers.py b/users/serializers.py
new file mode 100644
index 0000000..209a86a
--- /dev/null
+++ b/users/serializers.py
@@ -0,0 +1,24 @@
+from .models import User
+from rest_framework import serializers
+
+
+class UserSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = User
+ fields = '__all__'
+
+
+class RegistrationSerializer(serializers.ModelSerializer):
+ name = serializers.CharField()
+ email = serializers.CharField()
+ password = serializers.CharField()
+
+ def create(self, validated_data):
+ user = User.objects.create(name=validated_data['name'],
+ email=validated_data['email'],
+ password=validated_data['password'])
+ return user
+
+ class Meta:
+ model = User
+ fields = ('name', 'email', 'password')
diff --git a/users/tests.py b/users/tests.py
new file mode 100644
index 0000000..de8bdc0
--- /dev/null
+++ b/users/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/users/views.py b/users/views.py
new file mode 100644
index 0000000..2b80267
--- /dev/null
+++ b/users/views.py
@@ -0,0 +1,26 @@
+from .models import User
+from .serializers import UserSerializer
+
+from rest_framework import status
+from rest_framework import viewsets
+from rest_framework.views import APIView
+from rest_framework.response import Response
+
+from .serializers import RegistrationSerializer
+
+
+class UserViewSet(viewsets.ModelViewSet):
+ serializer_class = UserSerializer
+ queryset = User.objects.all()
+
+
+class RegistrationView(APIView):
+ def post(self, request):
+ serializer = RegistrationSerializer(data=request.data)
+ serializer.is_valid(raise_exception=True)
+ if serializer.is_valid():
+ user = serializer.save()
+ if user:
+ json = serializer.data
+ return Response(json, status=status.HTTP_201_CREATED)
+ return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)