diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..9e639d5d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,40 @@ +name: Django CI + +on: [push, pull_request] + +jobs: + test: + runs-on: ubuntu-latest + + services: + postgres: + image: postgres:13 + env: + POSTGRES_PASSWORD: postgres + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.9' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Run tests + env: + DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres + SECRET_KEY: test-key + run: | + python manage.py test \ No newline at end of file diff --git a/.gitignore b/.gitignore index 4f37e584..b8f958f4 100644 Binary files a/.gitignore and b/.gitignore differ diff --git a/debug.py b/debug.py new file mode 100644 index 00000000..dd9e2bbe --- /dev/null +++ b/debug.py @@ -0,0 +1,21 @@ +import os +import sys + +print("=== DEBUG INFO ===") +print("Current directory:", os.getcwd()) +print("Directory contents:", os.listdir('.')) +print("Python path:", sys.path) + +try: + from tplab2.wsgi import application + print("✅ SUCCESS: tplab2.wsgi imported successfully!") +except ImportError as e: + print("❌ ERROR importing tplab2.wsgi:", e) + print("Available modules:") + for item in os.listdir('.'): + if os.path.isdir(item): + print(f" - {item}/") + try: + print(f" Contents: {os.listdir(item)}") + except: + print(f" Cannot list contents") \ No newline at end of file diff --git a/shop/__pycache__/__init__.cpython-313.pyc b/shop/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 00000000..8d19ef0b Binary files /dev/null and b/shop/__pycache__/__init__.cpython-313.pyc differ diff --git a/shop/__pycache__/admin.cpython-313.pyc b/shop/__pycache__/admin.cpython-313.pyc new file mode 100644 index 00000000..70ef09db Binary files /dev/null and b/shop/__pycache__/admin.cpython-313.pyc differ diff --git a/shop/__pycache__/apps.cpython-313.pyc b/shop/__pycache__/apps.cpython-313.pyc new file mode 100644 index 00000000..4117b603 Binary files /dev/null and b/shop/__pycache__/apps.cpython-313.pyc differ diff --git a/shop/__pycache__/models.cpython-313.pyc b/shop/__pycache__/models.cpython-313.pyc new file mode 100644 index 00000000..65716b95 Binary files /dev/null and b/shop/__pycache__/models.cpython-313.pyc differ diff --git a/shop/__pycache__/urls.cpython-313.pyc b/shop/__pycache__/urls.cpython-313.pyc new file mode 100644 index 00000000..83c24b10 Binary files /dev/null and b/shop/__pycache__/urls.cpython-313.pyc differ diff --git a/shop/__pycache__/views.cpython-313.pyc b/shop/__pycache__/views.cpython-313.pyc new file mode 100644 index 00000000..f9b39417 Binary files /dev/null and b/shop/__pycache__/views.cpython-313.pyc differ diff --git a/shop/admin.py b/shop/admin.py index 8c38f3f3..a7c2bf70 100644 --- a/shop/admin.py +++ b/shop/admin.py @@ -1,3 +1,5 @@ from django.contrib import admin +from .models import Product # Импортируем модель Product -# Register your models here. +# Регистрируем модель Product в админке +admin.site.register(Product) \ No newline at end of file diff --git a/shop/migrations/0001_initial.py b/shop/migrations/0001_initial.py index c198c783..545cfb27 100644 --- a/shop/migrations/0001_initial.py +++ b/shop/migrations/0001_initial.py @@ -1,7 +1,7 @@ -# Generated by Django 3.2.8 on 2021-10-06 17:32 +# Generated by Django 5.2.7 on 2025-10-29 16:02 -from django.db import migrations, models import django.db.models.deletion +from django.db import migrations, models class Migration(migrations.Migration): @@ -16,8 +16,10 @@ class Migration(migrations.Migration): name='Product', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=200)), - ('price', models.PositiveIntegerField()), + ('name', models.CharField(max_length=100)), + ('price', models.DecimalField(decimal_places=2, max_digits=10)), + ('description', models.TextField(blank=True)), + ('quantity', models.PositiveIntegerField(default=1)), ], ), migrations.CreateModel( diff --git a/shop/migrations/0002_add_quantity_field.py b/shop/migrations/0002_add_quantity_field.py new file mode 100644 index 00000000..1914b427 --- /dev/null +++ b/shop/migrations/0002_add_quantity_field.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2.7 on 2025-10-29 16:04 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('shop', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='product', + name='quantity', + field=models.PositiveIntegerField(default=1), + ), + ] \ No newline at end of file diff --git a/shop/migrations/__pycache__/0001_initial.cpython-313.pyc b/shop/migrations/__pycache__/0001_initial.cpython-313.pyc new file mode 100644 index 00000000..9307909d Binary files /dev/null and b/shop/migrations/__pycache__/0001_initial.cpython-313.pyc differ diff --git a/shop/migrations/__pycache__/__init__.cpython-313.pyc b/shop/migrations/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 00000000..c56b2b86 Binary files /dev/null and b/shop/migrations/__pycache__/__init__.cpython-313.pyc differ diff --git a/shop/models.py b/shop/models.py index 68f38c59..de294ed8 100644 --- a/shop/models.py +++ b/shop/models.py @@ -2,8 +2,16 @@ # Create your models here. class Product(models.Model): - name = models.CharField(max_length=200) - price = models.PositiveIntegerField() + name = models.CharField(max_length=100) + price = models.DecimalField(max_digits=10, decimal_places=2) + description = models.TextField(blank=True) + quantity = models.PositiveIntegerField(default=1) # Добавляем это поле + + def is_available(self): + return self.quantity > 0 + + def __str__(self): + return f"{self.name} ({self.quantity} шт.)" class Purchase(models.Model): product = models.ForeignKey(Product, on_delete=models.CASCADE) diff --git a/shop/templates/shop/index.html b/shop/templates/shop/index.html index 643f03e5..b2654503 100644 --- a/shop/templates/shop/index.html +++ b/shop/templates/shop/index.html @@ -11,16 +11,24 @@
Наименование
Цена
Количество
Действие
{{ p.name }}
{{ p.price }}
{{ p.quantity }} шт.
Нет в наличии
+ {% endif %} +