Skip to content

Commit bf65ebe

Browse files
committed
update to django-mongodb-backend==5.2.0b0
1 parent 2d45fb6 commit bf65ebe

File tree

10 files changed

+153
-30
lines changed

10 files changed

+153
-30
lines changed

pay_parking/db.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Generated by Django 5.2.1 on 2025-05-18 20:00
2+
3+
import django.core.validators
4+
import django_mongodb_backend.fields
5+
from django.db import migrations, models
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
initial = True
11+
12+
dependencies = [
13+
]
14+
15+
operations = [
16+
migrations.CreateModel(
17+
name='EmbeddedParking',
18+
fields=[
19+
('id', django_mongodb_backend.fields.ObjectIdAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
20+
('parking_zone', models.PositiveIntegerField(verbose_name='Зона парковки')),
21+
('address', models.CharField(max_length=50, verbose_name='Адрес')),
22+
('total_lots', models.PositiveIntegerField(verbose_name='Всего мест')),
23+
('latitude', models.DecimalField(decimal_places=6, max_digits=9, validators=[django.core.validators.MinValueValidator(-90), django.core.validators.MaxValueValidator(90)], verbose_name='Широта')),
24+
('longitude', models.DecimalField(decimal_places=6, max_digits=9, validators=[django.core.validators.MinValueValidator(-180), django.core.validators.MaxValueValidator(180)], verbose_name='Долгота')),
25+
('price_per_hour', models.DecimalField(decimal_places=2, max_digits=8, validators=[django.core.validators.MinValueValidator(0)], verbose_name='Цена за час')),
26+
],
27+
options={
28+
'abstract': False,
29+
},
30+
),
31+
migrations.CreateModel(
32+
name='Parking',
33+
fields=[
34+
('id', django_mongodb_backend.fields.ObjectIdAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
35+
('parking_zone', models.PositiveIntegerField(verbose_name='Зона парковки')),
36+
('address', models.CharField(max_length=50, verbose_name='Адрес')),
37+
('total_lots', models.PositiveIntegerField(verbose_name='Всего мест')),
38+
('latitude', models.DecimalField(decimal_places=6, max_digits=9, validators=[django.core.validators.MinValueValidator(-90), django.core.validators.MaxValueValidator(90)], verbose_name='Широта')),
39+
('longitude', models.DecimalField(decimal_places=6, max_digits=9, validators=[django.core.validators.MinValueValidator(-180), django.core.validators.MaxValueValidator(180)], verbose_name='Долгота')),
40+
('price_per_hour', models.DecimalField(decimal_places=2, max_digits=8, validators=[django.core.validators.MinValueValidator(0)], verbose_name='Цена за час')),
41+
],
42+
options={
43+
'verbose_name': 'парковка',
44+
'verbose_name_plural': 'Парковки',
45+
},
46+
),
47+
]

pay_parking/parking/migrations/__init__.py

Whitespace-only changes.

pay_parking/parking/models.py

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,25 @@
66
class AbstractParking(models.Model):
77
parking_zone = models.PositiveIntegerField('Зона парковки')
88
address = models.CharField('Адрес', max_length=50)
9-
109
total_lots = models.PositiveIntegerField('Всего мест')
11-
12-
class Meta:
13-
abstract = True
14-
15-
16-
class EmbeddedParking(EmbeddedModel, AbstractParking):
17-
latitude = models.FloatField(
18-
'Широта', # max_digits=9, decimal_places=6,
19-
validators=[MinValueValidator(-90), MaxValueValidator(90)]
10+
latitude = models.DecimalField(
11+
'Широта', max_digits=9, decimal_places=6,
12+
validators=[MinValueValidator(-90), MaxValueValidator(90)],
2013
)
21-
longitude = models.FloatField(
22-
'Долгота', # max_digits=9, decimal_places=6,
14+
longitude = models.DecimalField(
15+
'Долгота', max_digits=9, decimal_places=6,
2316
validators=[MinValueValidator(-180), MaxValueValidator(180)]
2417
)
25-
price_per_hour = models.FloatField(
26-
'Цена за час', # decimal_places=2, max_digits=8,
18+
price_per_hour = models.DecimalField(
19+
'Цена за час', decimal_places=2, max_digits=8,
2720
validators=[MinValueValidator(0)]
2821
)
2922

23+
class Meta:
24+
abstract = True
25+
26+
27+
class EmbeddedParking(EmbeddedModel, AbstractParking):
3028
def __str__(self):
3129
return f'{self.address} ' \
3230
f'<br> Места: {self.total_lots} ' \
@@ -47,18 +45,6 @@ class Parking(AbstractParking):
4745
# output_field=models.PositiveIntegerField(),
4846
# verbose_name='Свободные места'
4947
# )
50-
latitude = models.DecimalField(
51-
'Широта', max_digits=9, decimal_places=6,
52-
validators=[MinValueValidator(-90), MaxValueValidator(90)],
53-
)
54-
longitude = models.DecimalField(
55-
'Долгота', max_digits=9, decimal_places=6,
56-
validators=[MinValueValidator(-180), MaxValueValidator(180)]
57-
)
58-
price_per_hour = models.DecimalField(
59-
'Цена за час', decimal_places=2, max_digits=8,
60-
validators=[MinValueValidator(0)]
61-
)
6248

6349
def available_lots(self):
6450
return self.total_lots - self.payments.filter(
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Generated by Django 5.2.1 on 2025-05-18 20:00
2+
3+
import django.core.validators
4+
import django.db.models.deletion
5+
import django_mongodb_backend.fields
6+
import parking.models
7+
import paying.models
8+
import users.models
9+
from django.conf import settings
10+
from django.db import migrations, models
11+
12+
13+
class Migration(migrations.Migration):
14+
15+
initial = True
16+
17+
dependencies = [
18+
('parking', '0001_initial'),
19+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
20+
]
21+
22+
operations = [
23+
migrations.CreateModel(
24+
name='Payment',
25+
fields=[
26+
('id', django_mongodb_backend.fields.ObjectIdAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
27+
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Создание')),
28+
('start', models.DateTimeField(validators=[django.core.validators.MinValueValidator(paying.models.min_start, 'Введите время не раньше текущего, чем на 5 минут')], verbose_name='Начало')),
29+
('end', models.DateTimeField(verbose_name='Конец')),
30+
('duration', models.DurationField(verbose_name='Длительность')),
31+
('price', models.DecimalField(decimal_places=2, max_digits=8, verbose_name='Цена')),
32+
('parking_detail', django_mongodb_backend.fields.EmbeddedModelField(embedded_model=parking.models.EmbeddedParking, verbose_name='Данные о парковке')),
33+
('user_detail', django_mongodb_backend.fields.EmbeddedModelField(embedded_model=users.models.EmbeddedUser, verbose_name='Данные о пользователе')),
34+
('parking', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='payments', to='parking.parking', verbose_name='Парковка')),
35+
('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='payments', to=settings.AUTH_USER_MODEL, verbose_name='Пользователь')),
36+
],
37+
options={
38+
'verbose_name': 'оплата',
39+
'verbose_name_plural': 'Оплаты',
40+
},
41+
),
42+
]

pay_parking/paying/migrations/__init__.py

Whitespace-only changes.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Generated by Django 5.2.1 on 2025-05-18 20:00
2+
3+
import django_mongodb_backend.fields
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
initial = True
10+
11+
dependencies = [
12+
]
13+
14+
operations = [
15+
migrations.CreateModel(
16+
name='User',
17+
fields=[
18+
('id', django_mongodb_backend.fields.ObjectIdAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
19+
('password', models.CharField(max_length=128, verbose_name='password')),
20+
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
21+
('email', models.EmailField(max_length=254, unique=True, verbose_name='Электронная почта')),
22+
('first_name', models.CharField(max_length=30, verbose_name='Имя')),
23+
('second_name', models.CharField(max_length=30, verbose_name='Фамилия')),
24+
('third_name', models.CharField(blank=True, max_length=30, null=True, verbose_name='Отчество')),
25+
('is_staff', models.BooleanField(default=False, verbose_name='Статус персонала')),
26+
('updated_at', models.DateTimeField(auto_now=True, verbose_name='Последнее редактирование')),
27+
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Регистрация')),
28+
],
29+
options={
30+
'verbose_name': 'пользователь',
31+
'verbose_name_plural': 'Пользователи',
32+
},
33+
),
34+
migrations.CreateModel(
35+
name='EmbeddedUser',
36+
fields=[
37+
('id', django_mongodb_backend.fields.ObjectIdAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
38+
('email', models.EmailField(max_length=254, verbose_name='Электронная почта')),
39+
('first_name', models.CharField(max_length=30, verbose_name='Имя')),
40+
('second_name', models.CharField(max_length=30, verbose_name='Фамилия')),
41+
('third_name', models.CharField(max_length=30, null=True, verbose_name='Отчество')),
42+
('created_at', models.DateField(verbose_name='Регистрация')),
43+
('is_staff', models.BooleanField(default=False, verbose_name='Статус персонала')),
44+
],
45+
options={
46+
'abstract': False,
47+
},
48+
),
49+
]

pay_parking/users/migrations/__init__.py

Whitespace-only changes.

pay_parking/users/models.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ class EmbeddedUser(EmbeddedModel):
3131

3232
def full_name(self):
3333
third_name = self.third_name if self.third_name is not None else ''
34-
print(self.first_name)
3534
return f'{self.first_name} {self.second_name} {third_name}'
3635

3736
full_name.short_description = 'Фио пользователя'

requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
asgiref==3.8.1
2-
Django==5.1.8
3-
django-mongodb-backend==5.1.0b2
2+
Django==5.2.1
3+
django-mongodb-backend==5.2.0b0
44
dnspython==2.7.0
55
pymongo==4.12.0
66
sqlparse==0.5.3

0 commit comments

Comments
 (0)