first commit
This commit is contained in:
commit
b71ea45681
898 changed files with 138202 additions and 0 deletions
0
locations/__init__.py
Normal file
0
locations/__init__.py
Normal file
35
locations/admin.py
Normal file
35
locations/admin.py
Normal file
|
@ -0,0 +1,35 @@
|
|||
from django.contrib import admin
|
||||
from .models import City, County, Affairs, Broker
|
||||
|
||||
# Register your models here.
|
||||
|
||||
@admin.register(City)
|
||||
class CityAdmin(admin.ModelAdmin):
|
||||
list_display = ['name', 'slug']
|
||||
search_fields = ['name']
|
||||
readonly_fields = ['deleted_at']
|
||||
prepopulated_fields = {'slug': ('name',)}
|
||||
|
||||
@admin.register(County)
|
||||
class CountyAdmin(admin.ModelAdmin):
|
||||
list_display = ['name', 'city', 'slug']
|
||||
list_filter = ['city']
|
||||
search_fields = ['name', 'city__name']
|
||||
readonly_fields = ['deleted_at']
|
||||
prepopulated_fields = {'slug': ('name',)}
|
||||
|
||||
@admin.register(Affairs)
|
||||
class AffairsAdmin(admin.ModelAdmin):
|
||||
list_display = ['name', 'county', 'slug']
|
||||
list_filter = ['county__city', 'county']
|
||||
search_fields = ['name', 'county__name', 'county__city__name']
|
||||
readonly_fields = ['deleted_at']
|
||||
prepopulated_fields = {'slug': ('name',)}
|
||||
|
||||
@admin.register(Broker)
|
||||
class BrokerAdmin(admin.ModelAdmin):
|
||||
list_display = ['name', 'affairs', 'slug']
|
||||
list_filter = ['affairs__county__city', 'affairs__county', 'affairs']
|
||||
search_fields = ['name', 'affairs__name', 'affairs__county__name']
|
||||
readonly_fields = ['deleted_at']
|
||||
prepopulated_fields = {'slug': ('name',)}
|
7
locations/apps.py
Normal file
7
locations/apps.py
Normal file
|
@ -0,0 +1,7 @@
|
|||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class LocationsConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'locations'
|
||||
verbose_name = "مکانها"
|
90
locations/migrations/0001_initial.py
Normal file
90
locations/migrations/0001_initial.py
Normal file
|
@ -0,0 +1,90 @@
|
|||
# Generated by Django 5.2.4 on 2025-08-07 09:08
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Affairs',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ایجاد')),
|
||||
('updated', models.DateTimeField(auto_now=True, verbose_name='تاریخ بروزرسانی')),
|
||||
('is_active', models.BooleanField(default=True, verbose_name='فعال')),
|
||||
('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')),
|
||||
('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')),
|
||||
('slug', models.SlugField(max_length=100, unique=True, verbose_name='اسلاگ')),
|
||||
('name', models.CharField(max_length=100, verbose_name='نام')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'امور',
|
||||
'verbose_name_plural': 'امورها',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='City',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ایجاد')),
|
||||
('updated', models.DateTimeField(auto_now=True, verbose_name='تاریخ بروزرسانی')),
|
||||
('is_active', models.BooleanField(default=True, verbose_name='فعال')),
|
||||
('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')),
|
||||
('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')),
|
||||
('slug', models.SlugField(max_length=100, unique=True, verbose_name='اسلاگ')),
|
||||
('name', models.CharField(max_length=100, verbose_name='نام')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'شهر',
|
||||
'verbose_name_plural': 'شهرها',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Broker',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ایجاد')),
|
||||
('updated', models.DateTimeField(auto_now=True, verbose_name='تاریخ بروزرسانی')),
|
||||
('is_active', models.BooleanField(default=True, verbose_name='فعال')),
|
||||
('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')),
|
||||
('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')),
|
||||
('slug', models.SlugField(max_length=100, unique=True, verbose_name='اسلاگ')),
|
||||
('name', models.CharField(max_length=100, verbose_name='نام')),
|
||||
('affairs', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='locations.affairs', verbose_name='امور')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'کارگزار',
|
||||
'verbose_name_plural': 'کارگزارها',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='County',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ایجاد')),
|
||||
('updated', models.DateTimeField(auto_now=True, verbose_name='تاریخ بروزرسانی')),
|
||||
('is_active', models.BooleanField(default=True, verbose_name='فعال')),
|
||||
('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')),
|
||||
('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')),
|
||||
('slug', models.SlugField(max_length=100, unique=True, verbose_name='اسلاگ')),
|
||||
('name', models.CharField(max_length=100, verbose_name='نام')),
|
||||
('city', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='locations.city', verbose_name='شهرستان')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'شهرستان',
|
||||
'verbose_name_plural': 'شهرستان\u200cها',
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='affairs',
|
||||
name='county',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='locations.county', verbose_name='شهرستان'),
|
||||
),
|
||||
]
|
0
locations/migrations/__init__.py
Normal file
0
locations/migrations/__init__.py
Normal file
41
locations/models.py
Normal file
41
locations/models.py
Normal file
|
@ -0,0 +1,41 @@
|
|||
from django.db import models
|
||||
from common.models import NameSlugModel
|
||||
|
||||
# Create your models here.
|
||||
class City(NameSlugModel):
|
||||
class Meta:
|
||||
verbose_name = "شهر"
|
||||
verbose_name_plural = "شهرها"
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
class County(NameSlugModel):
|
||||
city = models.ForeignKey(City, on_delete=models.CASCADE, verbose_name="شهرستان")
|
||||
|
||||
class Meta:
|
||||
verbose_name = "شهرستان"
|
||||
verbose_name_plural = "شهرستانها"
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
class Affairs(NameSlugModel):
|
||||
county = models.ForeignKey(County, on_delete=models.CASCADE, verbose_name="شهرستان")
|
||||
|
||||
class Meta:
|
||||
verbose_name = "امور"
|
||||
verbose_name_plural = "امورها"
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
class Broker(NameSlugModel):
|
||||
affairs = models.ForeignKey(Affairs, on_delete=models.CASCADE, verbose_name="امور")
|
||||
|
||||
class Meta:
|
||||
verbose_name = "کارگزار"
|
||||
verbose_name_plural = "کارگزارها"
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
3
locations/tests.py
Normal file
3
locations/tests.py
Normal file
|
@ -0,0 +1,3 @@
|
|||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
3
locations/views.py
Normal file
3
locations/views.py
Normal file
|
@ -0,0 +1,3 @@
|
|||
from django.shortcuts import render
|
||||
|
||||
# Create your views here.
|
Loading…
Add table
Add a link
Reference in a new issue