From fca285473d474c0a5ab545d29515906dbc04b504 Mon Sep 17 00:00:00 2001 From: Parsa Nazer Date: Thu, 12 Dec 2024 22:39:50 +0330 Subject: [PATCH] user comment save --- backend/entertainment/__init__.py | 0 backend/entertainment/admin.py | 50 +++++++ backend/entertainment/apps.py | 7 + backend/entertainment/migrations/__init__.py | 0 backend/entertainment/models.py | 142 +++++++++++++++++++ backend/entertainment/tests.py | 3 + backend/entertainment/views.py | 3 + 7 files changed, 205 insertions(+) create mode 100644 backend/entertainment/__init__.py create mode 100644 backend/entertainment/admin.py create mode 100644 backend/entertainment/apps.py create mode 100644 backend/entertainment/migrations/__init__.py create mode 100644 backend/entertainment/models.py create mode 100644 backend/entertainment/tests.py create mode 100644 backend/entertainment/views.py diff --git a/backend/entertainment/__init__.py b/backend/entertainment/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/entertainment/admin.py b/backend/entertainment/admin.py new file mode 100644 index 0000000..b9ddb12 --- /dev/null +++ b/backend/entertainment/admin.py @@ -0,0 +1,50 @@ +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 \ No newline at end of file diff --git a/backend/entertainment/apps.py b/backend/entertainment/apps.py new file mode 100644 index 0000000..b7f4c42 --- /dev/null +++ b/backend/entertainment/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class EntertainmentConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'entertainment' + verbose_name = 'بخش سرگرمی ها' \ No newline at end of file diff --git a/backend/entertainment/migrations/__init__.py b/backend/entertainment/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/backend/entertainment/models.py b/backend/entertainment/models.py new file mode 100644 index 0000000..d575fc2 --- /dev/null +++ b/backend/entertainment/models.py @@ -0,0 +1,142 @@ +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 = 'مدل فیلم ها' + diff --git a/backend/entertainment/tests.py b/backend/entertainment/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/backend/entertainment/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/backend/entertainment/views.py b/backend/entertainment/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/backend/entertainment/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.