From c6b86950f78be565bf6c25951adb8050cbb74538 Mon Sep 17 00:00:00 2001 From: Farid Date: Tue, 26 Sep 2023 19:00:23 +0300 Subject: [PATCH] Second Task --- R4C/R4C/__init__.py | 0 R4C/R4C/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 167 bytes R4C/R4C/__pycache__/settings.cpython-311.pyc | Bin 0 -> 2672 bytes R4C/R4C/__pycache__/urls.cpython-311.pyc | Bin 0 -> 1178 bytes R4C/R4C/__pycache__/wsgi.cpython-311.pyc | Bin 0 -> 680 bytes R4C/R4C/asgi.py | 16 +++ R4C/R4C/settings.py | 123 ++++++++++++++++++ R4C/R4C/urls.py | 22 ++++ R4C/R4C/wsgi.py | 16 +++ R4C/README.md | 33 +++++ R4C/customers/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 173 bytes .../__pycache__/admin.cpython-311.pyc | Bin 0 -> 228 bytes .../__pycache__/apps.cpython-311.pyc | Bin 0 -> 489 bytes .../__pycache__/models.cpython-311.pyc | Bin 0 -> 601 bytes R4C/customers/admin.py | 3 + R4C/customers/apps.py | 5 + R4C/customers/migrations/0001_initial.py | 21 +++ R4C/customers/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-311.pyc | Bin 0 -> 943 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 184 bytes R4C/customers/models.py | 5 + R4C/customers/tests.py | 3 + R4C/customers/views.py | 3 + R4C/db.sqlite3 | Bin 0 -> 151552 bytes R4C/manage.py | 21 +++ R4C/orders/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 170 bytes R4C/orders/__pycache__/admin.cpython-311.pyc | Bin 0 -> 225 bytes R4C/orders/__pycache__/apps.cpython-311.pyc | Bin 0 -> 480 bytes R4C/orders/__pycache__/models.cpython-311.pyc | Bin 0 -> 787 bytes R4C/orders/admin.py | 3 + R4C/orders/apps.py | 5 + R4C/orders/migrations/0001_initial.py | 24 ++++ R4C/orders/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-311.pyc | Bin 0 -> 1237 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 181 bytes R4C/orders/models.py | 8 ++ R4C/orders/tests.py | 3 + R4C/orders/views.py | 3 + R4C/robots/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 170 bytes R4C/robots/__pycache__/admin.cpython-311.pyc | Bin 0 -> 225 bytes R4C/robots/__pycache__/apps.cpython-311.pyc | Bin 0 -> 480 bytes R4C/robots/__pycache__/models.cpython-311.pyc | Bin 0 -> 906 bytes R4C/robots/__pycache__/urls.cpython-311.pyc | Bin 0 -> 488 bytes R4C/robots/__pycache__/views.cpython-311.pyc | Bin 0 -> 3245 bytes R4C/robots/admin.py | 3 + R4C/robots/apps.py | 5 + R4C/robots/migrations/0001_initial.py | 24 ++++ R4C/robots/migrations/0002_robot_quantity.py | 19 +++ R4C/robots/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-311.pyc | Bin 0 -> 1157 bytes .../0002_robot_quantity.cpython-311.pyc | Bin 0 -> 838 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 181 bytes R4C/robots/models.py | 9 ++ R4C/robots/tests.py | 3 + R4C/robots/urls.py | 8 ++ R4C/robots/views.py | 53 ++++++++ R4C/tasks.md | 50 +++++++ README.md | 2 - 61 files changed, 491 insertions(+), 2 deletions(-) create mode 100644 R4C/R4C/__init__.py create mode 100644 R4C/R4C/__pycache__/__init__.cpython-311.pyc create mode 100644 R4C/R4C/__pycache__/settings.cpython-311.pyc create mode 100644 R4C/R4C/__pycache__/urls.cpython-311.pyc create mode 100644 R4C/R4C/__pycache__/wsgi.cpython-311.pyc create mode 100644 R4C/R4C/asgi.py create mode 100644 R4C/R4C/settings.py create mode 100644 R4C/R4C/urls.py create mode 100644 R4C/R4C/wsgi.py create mode 100644 R4C/README.md create mode 100644 R4C/customers/__init__.py create mode 100644 R4C/customers/__pycache__/__init__.cpython-311.pyc create mode 100644 R4C/customers/__pycache__/admin.cpython-311.pyc create mode 100644 R4C/customers/__pycache__/apps.cpython-311.pyc create mode 100644 R4C/customers/__pycache__/models.cpython-311.pyc create mode 100644 R4C/customers/admin.py create mode 100644 R4C/customers/apps.py create mode 100644 R4C/customers/migrations/0001_initial.py create mode 100644 R4C/customers/migrations/__init__.py create mode 100644 R4C/customers/migrations/__pycache__/0001_initial.cpython-311.pyc create mode 100644 R4C/customers/migrations/__pycache__/__init__.cpython-311.pyc create mode 100644 R4C/customers/models.py create mode 100644 R4C/customers/tests.py create mode 100644 R4C/customers/views.py create mode 100644 R4C/db.sqlite3 create mode 100644 R4C/manage.py create mode 100644 R4C/orders/__init__.py create mode 100644 R4C/orders/__pycache__/__init__.cpython-311.pyc create mode 100644 R4C/orders/__pycache__/admin.cpython-311.pyc create mode 100644 R4C/orders/__pycache__/apps.cpython-311.pyc create mode 100644 R4C/orders/__pycache__/models.cpython-311.pyc create mode 100644 R4C/orders/admin.py create mode 100644 R4C/orders/apps.py create mode 100644 R4C/orders/migrations/0001_initial.py create mode 100644 R4C/orders/migrations/__init__.py create mode 100644 R4C/orders/migrations/__pycache__/0001_initial.cpython-311.pyc create mode 100644 R4C/orders/migrations/__pycache__/__init__.cpython-311.pyc create mode 100644 R4C/orders/models.py create mode 100644 R4C/orders/tests.py create mode 100644 R4C/orders/views.py create mode 100644 R4C/robots/__init__.py create mode 100644 R4C/robots/__pycache__/__init__.cpython-311.pyc create mode 100644 R4C/robots/__pycache__/admin.cpython-311.pyc create mode 100644 R4C/robots/__pycache__/apps.cpython-311.pyc create mode 100644 R4C/robots/__pycache__/models.cpython-311.pyc create mode 100644 R4C/robots/__pycache__/urls.cpython-311.pyc create mode 100644 R4C/robots/__pycache__/views.cpython-311.pyc create mode 100644 R4C/robots/admin.py create mode 100644 R4C/robots/apps.py create mode 100644 R4C/robots/migrations/0001_initial.py create mode 100644 R4C/robots/migrations/0002_robot_quantity.py create mode 100644 R4C/robots/migrations/__init__.py create mode 100644 R4C/robots/migrations/__pycache__/0001_initial.cpython-311.pyc create mode 100644 R4C/robots/migrations/__pycache__/0002_robot_quantity.cpython-311.pyc create mode 100644 R4C/robots/migrations/__pycache__/__init__.cpython-311.pyc create mode 100644 R4C/robots/models.py create mode 100644 R4C/robots/tests.py create mode 100644 R4C/robots/urls.py create mode 100644 R4C/robots/views.py create mode 100644 R4C/tasks.md delete mode 100644 README.md diff --git a/R4C/R4C/__init__.py b/R4C/R4C/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/R4C/R4C/__pycache__/__init__.cpython-311.pyc b/R4C/R4C/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e8893b714c1c3b78f83fb24e134f824800e304c6 GIT binary patch literal 167 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 literal 0 HcmV?d00001 diff --git a/R4C/R4C/asgi.py b/R4C/R4C/asgi.py new file mode 100644 index 0000000..38d534a --- /dev/null +++ b/R4C/R4C/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for R4C project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'R4C.settings') + +application = get_asgi_application() diff --git a/R4C/R4C/settings.py b/R4C/R4C/settings.py new file mode 100644 index 0000000..d284f79 --- /dev/null +++ b/R4C/R4C/settings.py @@ -0,0 +1,123 @@ +""" +Django settings for R4C project. + +Generated by 'django-admin startproject' using Django 3.0.9. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/3.0/ref/settings/ +""" + +import os + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'mztx@x_-=gfhc9xs@bm58m&@3pc7##opo14zob!(l2tus05+jo' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'customers', + 'orders', + 'robots' +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'R4C.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'R4C.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/3.0/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + + +# Password validation +# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/3.0/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/3.0/howto/static-files/ + +STATIC_URL = '/static/' diff --git a/R4C/R4C/urls.py b/R4C/R4C/urls.py new file mode 100644 index 0000000..2489036 --- /dev/null +++ b/R4C/R4C/urls.py @@ -0,0 +1,22 @@ +"""R4C URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/3.0/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 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 +from django.urls import path, include +urlpatterns = [ + path('admin/', admin.site.urls), + path('robots/',include('robots.urls')), +] diff --git a/R4C/R4C/wsgi.py b/R4C/R4C/wsgi.py new file mode 100644 index 0000000..385b51e --- /dev/null +++ b/R4C/R4C/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for R4C project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'R4C.settings') + +application = get_wsgi_application() diff --git a/R4C/README.md b/R4C/README.md new file mode 100644 index 0000000..eec0642 --- /dev/null +++ b/R4C/README.md @@ -0,0 +1,33 @@ +# R4C - Robots for consumers + +## Небольшая предыстория. +Давным-давно, в далёкой-далёкой галактике, была компания производящая различных +роботов. + +Каждый робот(**Robot**) имел определенную модель выраженную двух-символьной +последовательностью(например R2). Одновременно с этим, модель имела различные +версии(например D2). Напоминает популярный телефон различных моделей(11,12,13...) и его версии +(X,XS,Pro...). Вне компании роботов чаще всего называли по серийному номеру, объединяя модель и версию(например R2-D2). + +Также у компании были покупатели(**Customer**) которые периодически заказывали того или иного робота. + +Когда роботов не было в наличии - заказы покупателей(**Order**) попадали в список ожидания. + +--- +## Что делает данный код? +Это заготовка для сервиса, который ведет учет произведенных роботов,а также +выполняет некие операции связанные с этим процессом. + +Сервис нацелен на удовлетворение потребностей трёх категорий пользователей: +- Технические специалисты компании. Они будут присылать информацию +- Менеджмент компании. Они будут запрашивать информацию +- Клиенты. Им будут отправляться информация +___ + +## Как с этим работать? +- Создать для этого проекта репозиторий на GitHub +- Открыть данный проект в редакторе/среде разработки которую вы используете +- Ознакомиться с задачами в файле tasks.md +- Написать понятный и поддерживаемый код для каждой задачи +- Сделать по 1 отдельному PR с решением для каждой задачи +- Прислать ссылку на своё решение \ No newline at end of file diff --git a/R4C/customers/__init__.py b/R4C/customers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/R4C/customers/__pycache__/__init__.cpython-311.pyc b/R4C/customers/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9aec5c497e435915107ac80bec5c4c24d08ec5f9 GIT binary patch literal 173 zcmZ3^%ge<81W|edsUZ3>h=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09t%fZnoPI&QnC{B()0C_^YcoIGLwp!feKbKdpz;@oO>TZlX-=wL d5eLvTMj$Sh1ri^a85tRGFeqHWhKksLDgdA9JDC6g literal 0 HcmV?d00001 diff --git a/R4C/customers/__pycache__/apps.cpython-311.pyc b/R4C/customers/__pycache__/apps.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..80a37570e08af2fbfc9133e704d052ff94f719eb GIT binary patch literal 489 zcmZutJ4*vW5T3caNS;I#w6;uhm6ZfRE?^;~@X;Ix%XzyAC%K2aInd6+A7Gb%poo9Q zGF)qA7l~CWXYVcn(V5+uZ{EA}(&;pT$hEh{HR%s+tf^LkrA=T495_xOLKhJXI0bGz z0yhOdn*eWgOL7fvT|lq)sm&hdjgvHWl6Vx3gDRs?SQ*P50y7ZcA_uBP*W?D(n|asC z)HI2NRAqVI2-c2a&&unJ#eO6h%bScv3C|`Pw;8+5{7DtDw0?!9p0(;bN8Xj9cHYRB zA@>GJkVPV%D(_OLDHC@>2B8w(`Jv-&CV76EDm%TGdKZPT2&i2W4;!Ah_8tbBWqX}9 zqz|q1OsyV&fAoBy1;-D4iWJQ z0So4VS;xR^BrR*uaBc%!YstvBS#B9T=f#8`QTeFNkjq9totp0zlRE4If=?LumIY|H za)Uxfn8mCc``36U8?Or0M0VN{ikDB_QTJ?Bio$)$G2ZNKDQBIB@wUpv3FnJmUKJ>f z!w4x=B}(;02{*n=>24D8EF%mARjh7>qTWQ#l!H;&sOxv^x6cC%1fBe{{>2_U-r` z-n+F2xAy4Pj^+%DkwNF8ms3U73ggXog{^1zIt%7|v+2X8Fs&Zd-bZ0313D|lbV#(w jHLZF!A>;|l_dj1RPskkU!Qc9H@9gk3&AtCqkuLrM)v}RF literal 0 HcmV?d00001 diff --git a/R4C/customers/admin.py b/R4C/customers/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/R4C/customers/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/R4C/customers/apps.py b/R4C/customers/apps.py new file mode 100644 index 0000000..01aabb7 --- /dev/null +++ b/R4C/customers/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class CustomersConfig(AppConfig): + name = 'customers' diff --git a/R4C/customers/migrations/0001_initial.py b/R4C/customers/migrations/0001_initial.py new file mode 100644 index 0000000..5331c2a --- /dev/null +++ b/R4C/customers/migrations/0001_initial.py @@ -0,0 +1,21 @@ +# Generated by Django 3.0.9 on 2023-01-30 06:40 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Customer', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('email', models.CharField(max_length=255)), + ], + ), + ] diff --git a/R4C/customers/migrations/__init__.py b/R4C/customers/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/R4C/customers/migrations/__pycache__/0001_initial.cpython-311.pyc b/R4C/customers/migrations/__pycache__/0001_initial.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c842299a1fb6936cbfc662dfdee958356a7b438a GIT binary patch literal 943 zcmZuvPfrs;6rb5`m)&i_LNGN|(Ss4ofnegP5))Gb(Fi7rnrt@NES+iDvVY3#mVoil zg9qb@8-9Ws0|!2WA7M#)Aaf$|#BB+jIH+&7EgtaAzBli^d6V~>-`nq_qdEdHW()K; zM(CFahLRmP=kws~A%X~Yk%tZJNrr@xgq9GIJ|iMi+?0oxy5Q|!MTSf=Z&5jWDvrw% z*FC4f?8piHkSkt5s2kRXH^rWUf&Kg|m_0<1feA7sf(^NWjEsb6wyB6hAw(iFWJa25 zKZXp3l_A*!rJDg5pna)JWF)QBh8dzBXkB>lKIpKfAsy&l338x)X<$PqIe0*xYs*9A zt6Z(N!zl15gOYlsUHRe55?TMcG;q zQp>kJ%Cpq79ryGPbSq;Z$KJMF>NlcwpemDAD0PRrBwQ)yxN4=BEQ{-w1>Ch=3Vz;$#t5h=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09t%iGy1CbT%U zs5mAqu_!Yo#w9@56{6OLZGb1D82L>2X#0(Sz0A2zv Az5oCK literal 0 HcmV?d00001 diff --git a/R4C/customers/models.py b/R4C/customers/models.py new file mode 100644 index 0000000..9c2e650 --- /dev/null +++ b/R4C/customers/models.py @@ -0,0 +1,5 @@ +from django.db import models + + +class Customer(models.Model): + email = models.CharField(max_length=255,blank=False, null=False) diff --git a/R4C/customers/tests.py b/R4C/customers/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/R4C/customers/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/R4C/customers/views.py b/R4C/customers/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/R4C/customers/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/R4C/db.sqlite3 b/R4C/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..3e3effe8597b9cf7b9ebba74c887249a0e0461a8 GIT binary patch literal 151552 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 literal 0 HcmV?d00001 diff --git a/R4C/manage.py b/R4C/manage.py new file mode 100644 index 0000000..5c81f95 --- /dev/null +++ b/R4C/manage.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'R4C.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/R4C/orders/__init__.py b/R4C/orders/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/R4C/orders/__pycache__/__init__.cpython-311.pyc b/R4C/orders/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0e6bab6bc8c63f10b8166a321891230db3df219b GIT binary patch literal 170 zcmZ3^%ge<81W|edsUZ3>h=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09t%huT{CbT%U zs5mAqu_!Yo#w9PO4oIE6_BMeZ~Ah;sY}yBjX1K7*WIw6axTR2q?h- literal 0 HcmV?d00001 diff --git a/R4C/orders/__pycache__/admin.cpython-311.pyc b/R4C/orders/__pycache__/admin.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ae8c39a56c7c65dddccb9890d828429f191461af GIT binary patch literal 225 zcmZ3^%ge<81W|edsZK!pF^B^LOi;#WAs}NqLkdF*V-7noPI&QnC{B()0C_^YcoIGLwp!feKbKdC%vZ!joaz=n$0fGPmT-#S15 literal 0 HcmV?d00001 diff --git a/R4C/orders/__pycache__/apps.cpython-311.pyc b/R4C/orders/__pycache__/apps.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ca04f2191706cddf2ecb138e46749139273072d4 GIT binary patch literal 480 zcmZuty-EW?5T3cagqTZEj4xoB<|>5W%13SXhqiCY$!eU(K_ofP>YPW3n2rr@aDF=t#%07Y{smTM%DU4%WY?N{v0

z!FtJH8p(K~*_G52F7Koogj%wTgDxw^upmvfm)ll`6tUO9|NS(0bOHmO#+t1&N{rtZ7<-@{49Z2(=i{zKw zzpJ1$YX(kQ66^sCFr*-cK7<)L%d`WyZ^)8zY4hib z+to701~##IQ2C2kO%oH=6NU+sglcJmBsY?gW5uG~FhxBMw-F`DAlndDkA}%hQAu)2 zyN$Z2B9w$NK}ggQl3nFg;dz9%@{sBireqNHcFIUJNFI?Lrc@Gh-s-xy+PWvI{h0)! z=52(m9TAGfJWG3NhB#qSNI!uS)yC@I)YI?TV`7`dGzw=;G-!!-?#j-8l)FgD<)?@YSHJb}6 zzj)-5M5oo;TEIK(iVUG#Jd$o|LI@||>gfFZ2Cj|H&|hj0r1?RVR6*M1adKmT*1 Gpz<3&pvEcy literal 0 HcmV?d00001 diff --git a/R4C/orders/admin.py b/R4C/orders/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/R4C/orders/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/R4C/orders/apps.py b/R4C/orders/apps.py new file mode 100644 index 0000000..384ab43 --- /dev/null +++ b/R4C/orders/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class OrdersConfig(AppConfig): + name = 'orders' diff --git a/R4C/orders/migrations/0001_initial.py b/R4C/orders/migrations/0001_initial.py new file mode 100644 index 0000000..946436b --- /dev/null +++ b/R4C/orders/migrations/0001_initial.py @@ -0,0 +1,24 @@ +# Generated by Django 3.0.9 on 2023-01-30 06:40 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('customers', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Order', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('robot_serial', models.CharField(max_length=5)), + ('customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='customers.Customer')), + ], + ), + ] diff --git a/R4C/orders/migrations/__init__.py b/R4C/orders/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/R4C/orders/migrations/__pycache__/0001_initial.cpython-311.pyc b/R4C/orders/migrations/__pycache__/0001_initial.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6758c16ef2879fc28905ee24ed2673117ff371b5 GIT binary patch literal 1237 zcmZuwzi-n(6uz?)Cw9{|seph`fJlfEAw{jkQiLc~N)f*W6p$=SmXo^%hr|wd4x&sQ z7#P`LWGWy!FfuS8{sLF>P~C*Y#AZ|`Cf?a~0KwV!{JnSYeD8hl-RsFo1HmwxW%^k` z=&Mw+k>3Nm%K%;=f(Y)T0XFeKF%>LzrLUSf1zki$eTqnq;$F4~ZK?>pgP9I9Pn6rJ zk^d&uh9ZoC+htDR`W_eBz$diNuXpx*lTQ*Apj`pt1)|8r1eprKrb?79mZ#EuPs_Ft zl}JmWR~%a~!6Z+#t-@vwB7vEXHH8!tPd&2`eaqOy-~)5)Gm-dYQ6M_eD`l&_!Wd1C z(Nu;=X=`#5n0yB_9cxNg-J1H_1{q9~X<(!*^lKRvt3Zt28S%g$P{u`RZfzwHNhy8KNRtAU{y&SSezy>4({6tnZ6%w&i+TYE9d_Da{AI4v_h6uiO?bS2=zKH(9zG zhwDuCVIpK}@HZef#?P0jnT?CFhV&D$s_fG?uEqw^k3KV^;*p)o!7r8lVRiQTqo_Lj ze)Urj-m}67epnrDSBFt`7?vOIRE~!A`Bw*``uvBRVSRDCz8KXP!}9r^%Hgoqe0evj zH9s8qcqm%96fN9}7R=D*VJ+CM1yL;s%cHoE+cy>G3%ch=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09t%fs0!CbT%U zs5mAqu_!Yo#w9h=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09t%huT{CbT%U zs5mAqu_!Yo#w9noPI&QnC{B()0C_^YcoIGLwp!feKbKd2KczG$)vkyG bXcQw57s~>P56p~=j5in*E?`4NY(NzN%9=V# literal 0 HcmV?d00001 diff --git a/R4C/robots/__pycache__/apps.cpython-311.pyc b/R4C/robots/__pycache__/apps.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b4740dc09baf1c82a8fc86faefb2960ca65df2c3 GIT binary patch literal 480 zcmZuty-EW?5T3cagqR-`;|o}(xymLYf+S!eq=?!a3(J|^gh=kk-2}8t;RD#^4I<*p zScYq@>`r2p%GtY%AUd-<^L;yi%RDz4RUq-)J;}(w8?u#B0oE>o1qcv0fdD;3u;3ho z^$5b2xU>OY>E_~D!nuT2>BG<#COcby27tBmzpPEz4K^aIIxQsq2|#B5@4o%6eyKPe)P@h`A8Q#S3+F}v1MX*TrL zSg>w1m<2MNYIY^{l*@am24gK*|ERHV%6u-0Md|^8vQ9vTCL?wn)Z6}ZrK`i+wNVGzwVTdeQPVSmII5wP}s1=I` zh79ce4??OiWX#N8kVqb)TbZ&2m8lbVb`puwfji&x`}p1a-Fs($Qw0fDdzwI1TD~lRS1Cq_5c#T03>4A6qXx$A^-!nqEQu5>>bESGj8S}jkg?x zEw{c1hp!dI4`!YN45|=;svrO?He*X5f=EEZckxcLt{6F=)MJGW zR>f6QAtr1W$Mx76EH{AaEfigj13f69+k&CUxC5T3FX;Ppyru7v(@bcnXO4?JIHMNulOYQmq$9t z#b^pO4ZGp&qFU5WX`g?Y(XsDwV2FOew5#Nc=pJ5@hsz9AUW{Q)wX;6?xd literal 0 HcmV?d00001 diff --git a/R4C/robots/__pycache__/urls.cpython-311.pyc b/R4C/robots/__pycache__/urls.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..61bfef5ea780741bd5def2b54f745c0b20066f7b GIT binary patch literal 488 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