remove entertainment app and admin category fix
This commit is contained in:
@@ -0,0 +1,23 @@
|
|||||||
|
# Generated by Django 5.1.2 on 2024-12-31 17:41
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('account', '0007_remove_user_otp_user_otp_hash_alter_user_otp_expiry'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='user',
|
||||||
|
name='otp_expiry',
|
||||||
|
field=models.DateTimeField(blank=True, null=True, verbose_name='تاریخ تمام شدن کد یک بار مصرف'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='user',
|
||||||
|
name='otp_hash',
|
||||||
|
field=models.CharField(blank=True, max_length=64, null=True, verbose_name='کد یک بار مصرف'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -95,7 +95,6 @@ INSTALLED_APPS = [
|
|||||||
# custom apps
|
# custom apps
|
||||||
'product',
|
'product',
|
||||||
'account',
|
'account',
|
||||||
'entertainment',
|
|
||||||
'ticket',
|
'ticket',
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -285,11 +284,11 @@ UNFOLD = {
|
|||||||
|
|
||||||
# esm category model ro lower case bezar inja amir
|
# esm category model ro lower case bezar inja amir
|
||||||
|
|
||||||
# {
|
{
|
||||||
# "title": _("دسته بندی"),
|
"title": _("دسته بندی"),
|
||||||
# "icon": "category",
|
"icon": "category",
|
||||||
# "link": reverse_lazy("admin:product_ _changelist"),
|
"link": reverse_lazy("admin:product_categorymodel_changelist"),
|
||||||
# },
|
},
|
||||||
{
|
{
|
||||||
"title": _("نظرات"),
|
"title": _("نظرات"),
|
||||||
"icon": "chat",
|
"icon": "chat",
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
from django.contrib import admin
|
|
||||||
from import_export.admin import ImportExportActionModelAdmin
|
|
||||||
from unfold.admin import ModelAdmin
|
|
||||||
from .models import *
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Dare)
|
|
||||||
class Dare(ModelAdmin):
|
|
||||||
list_display = ['lang1', 'is_for_adults']
|
|
||||||
list_filter = ['is_for_adults']
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Truth)
|
|
||||||
class Truth(ModelAdmin):
|
|
||||||
list_display = ['lang1', 'is_for_adults']
|
|
||||||
list_filter = ['is_for_adults']
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(Would_you_rather)
|
|
||||||
class Would_you_rather(ModelAdmin):
|
|
||||||
list_display = ['lang1', 'is_for_adults']
|
|
||||||
list_filter = ['is_for_adults']
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(challenge)
|
|
||||||
class Challenge(ModelAdmin):
|
|
||||||
list_display = ['type']
|
|
||||||
|
|
||||||
@admin.register(abjad)
|
|
||||||
class abjad(ModelAdmin):
|
|
||||||
list_display = ['word', 'difficulty_type', 'answer']
|
|
||||||
list_filter = ['difficulty_type']
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@admin.register(MusicModel)
|
|
||||||
class MusicAdmin(ModelAdmin):
|
|
||||||
list_display = ['name', 'message_id', 'singer', 'category', 'trand']
|
|
||||||
|
|
||||||
@admin.register(MovieModel)
|
|
||||||
class MovieAdmin(ModelAdmin):
|
|
||||||
list_display = ['name', 'message_id', 'category', 'receommended']
|
|
||||||
|
|
||||||
@admin.register(MovieCategory)
|
|
||||||
class MovieCategoryAdmin(ModelAdmin):
|
|
||||||
pass
|
|
||||||
|
|
||||||
@admin.register(MusicCategory)
|
|
||||||
class MusicCategoryAdmin(ModelAdmin):
|
|
||||||
pass
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
from django.apps import AppConfig
|
|
||||||
|
|
||||||
|
|
||||||
class EntertainmentConfig(AppConfig):
|
|
||||||
default_auto_field = 'django.db.models.BigAutoField'
|
|
||||||
name = 'entertainment'
|
|
||||||
verbose_name = 'بخش سرگرمی ها'
|
|
||||||
@@ -1,141 +0,0 @@
|
|||||||
# Generated by Django 5.1.2 on 2024-12-13 17:49
|
|
||||||
|
|
||||||
import django.db.models.deletion
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
initial = True
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='abjad',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('word', models.TextField(verbose_name='صورت ی سوال')),
|
|
||||||
('image', models.ImageField(blank=True, null=True, upload_to='media/', verbose_name='عکس بازی افتابه')),
|
|
||||||
('difficulty_type', models.CharField(choices=[('hard', 'سخت'), ('normal', 'متوسط'), ('easy', 'اسون')], max_length=13, verbose_name='سختی')),
|
|
||||||
('answer', models.CharField(max_length=30, verbose_name='جواب')),
|
|
||||||
('option2', models.CharField(blank=True, max_length=30, null=True, verbose_name='گزینه ی اشتباه')),
|
|
||||||
('option3', models.CharField(blank=True, max_length=30, null=True, verbose_name='گزینه ی اشتباه')),
|
|
||||||
('option4', models.CharField(blank=True, max_length=30, null=True, verbose_name='گزینه ی اشتباه')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'verbose_name': 'سوال ابجد',
|
|
||||||
'verbose_name_plural': 'سوالات ابجد',
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='challenge',
|
|
||||||
fields=[
|
|
||||||
('type', models.CharField(choices=[('map', 'نقشه ی گنج'), ('prize', 'جوایز')], max_length=30, primary_key=True, serialize=False, verbose_name='نوع چالش')),
|
|
||||||
('image', models.ImageField(upload_to='media/', verbose_name='عکس')),
|
|
||||||
('link', models.URLField(verbose_name='لینک')),
|
|
||||||
('text', models.TextField(verbose_name='متن توضیحات')),
|
|
||||||
('button_text', models.CharField(max_length=40, verbose_name='متن دکمه')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'verbose_name': 'چالش',
|
|
||||||
'verbose_name_plural': 'چالش ها',
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='Dare',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('lang1', models.CharField(max_length=200, verbose_name='فارسی')),
|
|
||||||
('is_for_adults', models.BooleanField(verbose_name='+18 سوال')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'verbose_name': 'شجاعت',
|
|
||||||
'verbose_name_plural': 'شجاعت ها',
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='MovieCategory',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('name', models.CharField(max_length=40, verbose_name='نام دسته بندی')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'verbose_name': 'دسته بندی قیلم',
|
|
||||||
'verbose_name_plural': 'دسته بندی فیلم ها',
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='UploadParent',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('name', models.CharField(max_length=300, verbose_name='نام')),
|
|
||||||
('message_id', models.CharField(max_length=40, verbose_name='ای دی پیام تلگرام')),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='MusicCategory',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('name', models.CharField(max_length=40, verbose_name='نام دسته بندی')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'verbose_name': 'دسته بندی موزیک',
|
|
||||||
'verbose_name_plural': 'دسته بندی موزیک ها',
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='Truth',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('lang1', models.CharField(max_length=200, verbose_name='فارسی')),
|
|
||||||
('is_for_adults', models.BooleanField(verbose_name='+18 سوال')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'verbose_name': 'حقیقت',
|
|
||||||
'verbose_name_plural': 'حقیقت ها',
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='Would_you_rather',
|
|
||||||
fields=[
|
|
||||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
||||||
('lang1', models.CharField(max_length=200, verbose_name='فارسی')),
|
|
||||||
('is_for_adults', models.BooleanField(verbose_name='+18 سوال')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'verbose_name': 'ترجیح میدی',
|
|
||||||
'verbose_name_plural': 'ترجیح میدی ها',
|
|
||||||
},
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='MovieModel',
|
|
||||||
fields=[
|
|
||||||
('uploadparent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='entertainment.uploadparent')),
|
|
||||||
('description', models.CharField(blank=True, max_length=4000, null=True, verbose_name='توضیحات فیلم')),
|
|
||||||
('receommended', models.BooleanField(default=False, verbose_name='پیشنهادی')),
|
|
||||||
('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='entertainment.moviecategory', verbose_name='دسته بندی')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'verbose_name': 'مدل فیلم',
|
|
||||||
'verbose_name_plural': 'مدل فیلم ها',
|
|
||||||
},
|
|
||||||
bases=('entertainment.uploadparent',),
|
|
||||||
),
|
|
||||||
migrations.CreateModel(
|
|
||||||
name='MusicModel',
|
|
||||||
fields=[
|
|
||||||
('uploadparent_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='entertainment.uploadparent')),
|
|
||||||
('lyric', models.CharField(blank=True, max_length=4000, null=True, verbose_name='متن اهنگ')),
|
|
||||||
('singer', models.CharField(blank=True, max_length=300, null=True, verbose_name='خواننده')),
|
|
||||||
('trand', models.BooleanField(default=False, verbose_name='ترند')),
|
|
||||||
('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='entertainment.musiccategory', verbose_name='دسته بندی')),
|
|
||||||
],
|
|
||||||
options={
|
|
||||||
'verbose_name': 'مدل اهنگ',
|
|
||||||
'verbose_name_plural': 'مدل اهنگ ها',
|
|
||||||
},
|
|
||||||
bases=('entertainment.uploadparent',),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
@@ -1,142 +0,0 @@
|
|||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class BaseModel(models.Model):
|
|
||||||
lang1 = models.CharField(max_length=200, verbose_name='فارسی')
|
|
||||||
is_for_adults = models.BooleanField(verbose_name='+18 سوال')
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
abstract = True
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return self.lang1
|
|
||||||
|
|
||||||
async def get(self, *attrs):
|
|
||||||
if len(attrs) == 1:
|
|
||||||
return getattr(self, attrs[0], None)
|
|
||||||
else:
|
|
||||||
return tuple(getattr(self, attr, None) for attr in attrs)
|
|
||||||
|
|
||||||
|
|
||||||
class Dare(BaseModel):
|
|
||||||
class Meta:
|
|
||||||
verbose_name = 'شجاعت'
|
|
||||||
verbose_name_plural = 'شجاعت ها'
|
|
||||||
|
|
||||||
|
|
||||||
class Truth(BaseModel):
|
|
||||||
class Meta:
|
|
||||||
verbose_name = 'حقیقت'
|
|
||||||
verbose_name_plural = "حقیقت ها"
|
|
||||||
|
|
||||||
|
|
||||||
class Would_you_rather(BaseModel):
|
|
||||||
class Meta:
|
|
||||||
verbose_name = 'ترجیح میدی'
|
|
||||||
verbose_name_plural = "ترجیح میدی ها"
|
|
||||||
|
|
||||||
|
|
||||||
class challenge(models.Model):
|
|
||||||
challenge_type = (
|
|
||||||
('map', 'نقشه ی گنج'),
|
|
||||||
('prize', 'جوایز')
|
|
||||||
)
|
|
||||||
type = models.CharField(max_length=30, choices=challenge_type, verbose_name='نوع چالش', primary_key=True)
|
|
||||||
image = models.ImageField(upload_to='media/', verbose_name='عکس')
|
|
||||||
link = models.URLField(verbose_name='لینک')
|
|
||||||
text = models.TextField(verbose_name='متن توضیحات')
|
|
||||||
button_text = models.CharField(max_length=40, verbose_name='متن دکمه')
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return f'{self.type} - {self.text[0:50]}'
|
|
||||||
class Meta:
|
|
||||||
verbose_name = 'چالش'
|
|
||||||
verbose_name_plural = 'چالش ها'
|
|
||||||
|
|
||||||
class abjad(models.Model):
|
|
||||||
word = models.TextField(verbose_name='صورت ی سوال')
|
|
||||||
difficulty = (
|
|
||||||
('hard', 'سخت'),
|
|
||||||
('normal', 'متوسط'),
|
|
||||||
('easy', 'اسون')
|
|
||||||
)
|
|
||||||
image = models.ImageField(upload_to='media/', verbose_name='عکس بازی افتابه', blank=True, null=True)
|
|
||||||
difficulty_type = models.CharField(max_length=13, choices=difficulty, verbose_name='سختی')
|
|
||||||
answer = models.CharField(max_length=30, verbose_name='جواب')
|
|
||||||
option2 = models.CharField(max_length=30, verbose_name='گزینه ی اشتباه', null=True, blank=True)
|
|
||||||
option3 = models.CharField(max_length=30, verbose_name='گزینه ی اشتباه', null=True, blank=True)
|
|
||||||
option4 = models.CharField(max_length=30, verbose_name='گزینه ی اشتباه', null=True, blank=True)
|
|
||||||
def __str__(self):
|
|
||||||
return f'{self.word}'
|
|
||||||
class Meta:
|
|
||||||
verbose_name = 'سوال ابجد'
|
|
||||||
verbose_name_plural = 'سوالات ابجد'
|
|
||||||
async def get(self, *attrs):
|
|
||||||
if len(attrs) == 1:
|
|
||||||
return getattr(self, attrs[0], None)
|
|
||||||
else:
|
|
||||||
return tuple(getattr(self, attr, None) for attr in attrs)
|
|
||||||
|
|
||||||
GAME_DATA = {
|
|
||||||
Dare: {
|
|
||||||
'button': 'dare',
|
|
||||||
'game_name': 'شجاعت'
|
|
||||||
},
|
|
||||||
Truth: {
|
|
||||||
'button': 'truth',
|
|
||||||
'game_name': 'حقیقت'
|
|
||||||
},
|
|
||||||
Would_you_rather: {
|
|
||||||
'button': 'wyr',
|
|
||||||
'game_name': 'ترجیح میدی'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
|
|
||||||
class MusicCategory(models.Model):
|
|
||||||
name = models.CharField(max_length=40, verbose_name='نام دسته بندی')
|
|
||||||
def __str__(self):
|
|
||||||
return self.name
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
verbose_name = 'دسته بندی موزیک'
|
|
||||||
verbose_name_plural = 'دسته بندی موزیک ها'
|
|
||||||
|
|
||||||
class MovieCategory(models.Model):
|
|
||||||
name = models.CharField(max_length=40, verbose_name='نام دسته بندی')
|
|
||||||
def __str__(self):
|
|
||||||
return self.name
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
verbose_name = 'دسته بندی قیلم'
|
|
||||||
verbose_name_plural = 'دسته بندی فیلم ها'
|
|
||||||
|
|
||||||
|
|
||||||
class UploadParent(models.Model):
|
|
||||||
name = models.CharField(max_length=300, verbose_name='نام')
|
|
||||||
message_id = models.CharField(max_length=40, verbose_name='ای دی پیام تلگرام')
|
|
||||||
def __str__(self):
|
|
||||||
return self.name
|
|
||||||
|
|
||||||
class MusicModel(UploadParent):
|
|
||||||
lyric = models.CharField(verbose_name='متن اهنگ', max_length=4000, blank=True, null=True)
|
|
||||||
singer = models.CharField(max_length=300, verbose_name='خواننده', blank=True, null=True)
|
|
||||||
category = models.ForeignKey(MusicCategory, on_delete=models.CASCADE, verbose_name='دسته بندی', blank=True, null=True)
|
|
||||||
trand = models.BooleanField(default=False, verbose_name='ترند')
|
|
||||||
class Meta:
|
|
||||||
verbose_name = 'مدل اهنگ'
|
|
||||||
verbose_name_plural = 'مدل اهنگ ها'
|
|
||||||
|
|
||||||
|
|
||||||
class MovieModel(UploadParent):
|
|
||||||
description = models.CharField(max_length=4000,verbose_name='توضیحات فیلم', blank=True, null=True)
|
|
||||||
category = models.ForeignKey(MovieCategory, on_delete=models.CASCADE, verbose_name='دسته بندی', blank=True, null=True)
|
|
||||||
receommended = models.BooleanField(default=False, verbose_name='پیشنهادی')
|
|
||||||
class Meta:
|
|
||||||
verbose_name = 'مدل فیلم'
|
|
||||||
verbose_name_plural = 'مدل فیلم ها'
|
|
||||||
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
from django.test import TestCase
|
|
||||||
|
|
||||||
# Create your tests here.
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
from django.shortcuts import render
|
|
||||||
|
|
||||||
# Create your views here.
|
|
||||||
@@ -7,6 +7,9 @@ from unfold.admin import ModelAdmin
|
|||||||
class ProductModelAdmin(ModelAdmin):
|
class ProductModelAdmin(ModelAdmin):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@admin.register(CategoryModel)
|
||||||
|
class CategoryModelAdmin(ModelAdmin):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
@admin.register(CommentModel)
|
@admin.register(CommentModel)
|
||||||
|
|||||||
Reference in New Issue
Block a user