Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
VeryBigSad committed Jan 14, 2024
2 parents 6e79b87 + 517f10e commit 55e8bf9
Show file tree
Hide file tree
Showing 4 changed files with 161 additions and 144 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Generated by Django 4.2.3 on 2024-01-13 11:55

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
("contenttypes", "0002_remove_content_type_name"),
("core", "0008_auto_20231223_1331"),
]

operations = [
migrations.CreateModel(
name="SkillCategory",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("category", models.CharField(max_length=256)),
],
options={
"verbose_name": "Категория навыка",
"verbose_name_plural": "Категории навыков",
"ordering": ["category"],
},
),
migrations.CreateModel(
name="SpecializationToObject",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("object_id", models.PositiveIntegerField()),
(
"content_type",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="specializations",
to="contenttypes.contenttype",
),
),
(
"specialization",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="specializations",
to="core.specialization",
),
),
],
),
migrations.AlterModelOptions(
name="skill",
options={
"ordering": ["category", "skill"],
"verbose_name": "Навык",
"verbose_name_plural": "Навыки",
},
),
migrations.DeleteModel(
name="UserSkillTag",
),
migrations.AddField(
model_name="skill",
name="category",
field=models.ForeignKey(
default=0,
on_delete=django.db.models.deletion.CASCADE,
related_name="skills",
to="core.skillcategory",
),
preserve_default=False,
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Generated by Django 4.2.3 on 2024-01-14 00:06

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
("core", "0009_skillcategory_specializationtoobject_and_more"),
]

operations = [
migrations.AlterModelOptions(
name="skill",
options={
"ordering": ["category", "name"],
"verbose_name": "Навык",
"verbose_name_plural": "Навыки",
},
),
migrations.AlterModelOptions(
name="skillcategory",
options={
"ordering": ["name"],
"verbose_name": "Категория навыка",
"verbose_name_plural": "Категории навыков",
},
),
migrations.RenameField(
model_name="skill",
old_name="skill",
new_name="name",
),
migrations.RenameField(
model_name="skillcategory",
old_name="category",
new_name="name",
),
]
44 changes: 29 additions & 15 deletions core/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,35 +101,35 @@ def __str__(self):
return f"View<{self.user} - {self.content_object}>"


class Skill(models.Model):
class SkillCategory(models.Model):
"""
Skill model
Skill category model
"""

skill = models.CharField(max_length=256, null=False)
name = models.CharField(max_length=256, null=False)

class Meta:
verbose_name = "Навык"
verbose_name_plural = "Навыки"
ordering = ["skill"]
verbose_name = "Категория навыка"
verbose_name_plural = "Категории навыков"
ordering = ["name"]


class UserSkillTag(models.Model):
class Skill(models.Model):
"""
User skill tag model
Skill model
"""

skill_tag = models.CharField(max_length=256, null=False)
skill = models.ForeignKey(
Skill,
name = models.CharField(max_length=256, null=False)
category = models.ForeignKey(
SkillCategory,
on_delete=models.CASCADE,
related_name="tags",
related_name="skills",
)

class Meta:
verbose_name = "Тег навыка"
verbose_name_plural = "Теги навыков"
ordering = ["skill_tag"]
verbose_name = "Навык"
verbose_name_plural = "Навыки"
ordering = ["category", "name"]


class SkillToObject(models.Model):
Expand Down Expand Up @@ -161,3 +161,17 @@ class Specialization(models.Model):
category = models.ForeignKey(
SpecializationCategory, related_name="specializations", on_delete=models.CASCADE
)


class SpecializationToObject(models.Model):
specialization = models.ForeignKey(
Specialization, related_name="specializations", on_delete=models.CASCADE
)

content_type = models.ForeignKey(
ContentType,
on_delete=models.CASCADE,
related_name="specializations",
)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey("content_type", "object_id")
134 changes: 5 additions & 129 deletions news/tests.py
Original file line number Diff line number Diff line change
@@ -1,129 +1,5 @@
# from django.test import TestCase
# from rest_framework.test import APIRequestFactory, force_authenticate
# from tests.constants import USER_CREATE_DATA
# from users.models import CustomUser
# from users.views import UserList
#
# from news.models import News
# from news.views import NewsDetail, NewsList
#
#
# class NewsTestCase(TestCase):
# def setUp(self):
# self.factory = APIRequestFactory()
#
# self.user_list_view = UserList.as_view()
#
# self.news_list_view = NewsList.as_view()
# self.news_detail_view = NewsDetail.as_view()
#
# self.TITLE = "Test News title"
# self.TEXT = "Test News text"
# self.SHORT_TEXT = "Test News short text"
# self.COVER_URL = "https://example.com/"
#
# self.CREATE_DATA = {
# "title": self.TITLE,
# "text": self.TEXT,
# "short_text": self.SHORT_TEXT,
# "cover_url": self.COVER_URL,
# }
#
# def test_news_creation(self):
# user = self._user_create(is_staff=True)
# request = self.factory.post("news/", self.CREATE_DATA)
# force_authenticate(request, user=user)
# response = self.news_list_view(request)
#
# self.assertEqual(response.status_code, 201)
# self.assertEqual(response.data["title"], self.TITLE)
# self.assertEqual(response.data["short_text"], self.SHORT_TEXT)
# self.assertEqual(response.data["cover_url"], self.COVER_URL)
#
# def test_news_creation_by_not_staff_user(self):
# user = self._user_create(is_staff=False)
# request = self.factory.post("news/", self.CREATE_DATA)
# force_authenticate(request, user=user)
# response = self.news_list_view(request)
#
# self.assertEqual(response.status_code, 403)
#
# def test_news_creation_with_too_long_title(self):
# user = self._user_create(is_staff=True)
# new_data = self.CREATE_DATA
# new_data["title"] = "too_long_string_" * 257
#
# request = self.factory.post("news/", new_data)
# force_authenticate(request, user=user)
# response = self.news_list_view(request)
# self.assertEqual(response.status_code, 400)
#
# def test_news_creation_with_empty_title(self):
# user = self._user_create(is_staff=True)
# new_data = self.CREATE_DATA
# new_data["title"] = ""
#
# request = self.factory.post("news/", new_data)
# force_authenticate(request, user=user)
# response = self.news_list_view(request)
# self.assertEqual(response.status_code, 400)
#
# def test_news_creation_with_wrong_data(self):
# user = self._user_create(is_staff=True)
# request = self.factory.post("news/", {"wrong_field": "wrong_value"})
#
# force_authenticate(request, user=user)
# response = self.news_list_view(request)
# self.assertEqual(response.status_code, 400)
#
# def test_news_creation_with_empty_data(self):
# user = self._user_create(is_staff=True)
# request = self.factory.post("news/", {})
#
# force_authenticate(request, user=user)
# response = self.news_list_view(request)
# self.assertEqual(response.status_code, 400)
#
# def test_news_update(self):
# user = self._user_create(is_staff=True)
# request = self.factory.post("news/", self.CREATE_DATA)
# force_authenticate(request, user=user)
# response = self.news_list_view(request)
#
# news_id = response.data["id"]
# news = News.objects.get(id=news_id)
#
# request = self.factory.patch(f"news/{news.pk}/", {"title": "New title"})
# force_authenticate(request, user=user)
# response = self.news_detail_view(request, pk=news.pk)
#
# self.assertEqual(response.status_code, 200)
# self.assertEqual(response.data["title"], "New title")
#
# def test_news_update_with_wrong_data(self):
# user = self._user_create(is_staff=True)
# request = self.factory.post("news/", self.CREATE_DATA)
# force_authenticate(request, user=user)
# response = self.news_list_view(request)
#
# news_id = response.data["id"]
# news = News.objects.get(id=news_id)
#
# new_data = self.CREATE_DATA
# new_data["title"] = ""
#
# request = self.factory.patch(f"news/{news.pk}/", new_data)
# force_authenticate(request, user=user)
# response = self.news_detail_view(request, pk=news.pk)
#
# self.assertEqual(response.status_code, 400)
#
# def _user_create(self, is_staff=False):
# request = self.factory.post("auth/users/", USER_CREATE_DATA)
# response = self.user_list_view(request)
# user_id = response.data["id"]
# user = CustomUser.objects.get(id=user_id)
# user.is_staff = is_staff
# user.is_active = True
# user.save()
# return user
from django.test import TestCase


class NewsTestCase(TestCase):
pass

0 comments on commit 55e8bf9

Please sign in to comment.