Skip to content

Commit 141fcd0

Browse files
authored
Merge pull request #2 from Keyintegrity/borodulin/ITF-1614
ITF-1614 - Поддержка многосайтовости для dj_hde
2 parents 9353319 + 8dc856a commit 141fcd0

4 files changed

Lines changed: 81 additions & 16 deletions

File tree

dj_hde/admin.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from django.contrib import admin
22

3-
from .models import Config, Ticket
3+
from .models import Config, Ticket, Department
44

55

66
@admin.register(Ticket)
@@ -11,3 +11,8 @@ class TicketAdmin(admin.ModelAdmin):
1111
@admin.register(Config)
1212
class ConfigAdmin(admin.ModelAdmin):
1313
list_display = ('domain', 'email', 'is_active')
14+
15+
16+
@admin.register(Department)
17+
class DepartmentAdmin(admin.ModelAdmin):
18+
list_display = ('name', 'department_id', )
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Generated by Django 2.2.14 on 2020-10-07 13:27
2+
from django.db import migrations, models
3+
4+
5+
class Migration(migrations.Migration):
6+
dependencies = [
7+
('dj_hde', '0002_auto_20190715_1301'),
8+
]
9+
10+
operations = [
11+
migrations.CreateModel(
12+
name='Department',
13+
fields=[
14+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
15+
('name', models.CharField(max_length=128, verbose_name='Наименование')),
16+
('department_id', models.PositiveSmallIntegerField(
17+
blank=True,
18+
help_text='Для добавления в запросы создания заявок, пользователя и т.д.',
19+
null=True,
20+
verbose_name='id департамента',
21+
)),
22+
],
23+
options={
24+
'verbose_name_plural': 'Департамент',
25+
'verbose_name': 'Департаменты',
26+
},
27+
),
28+
migrations.RemoveField(
29+
model_name='config',
30+
name='department_id',
31+
),
32+
migrations.AddField(
33+
model_name='config',
34+
name='departments',
35+
field=models.ManyToManyField('Department', verbose_name='Департаменты'),
36+
),
37+
migrations.AddField(
38+
model_name='config',
39+
name='site_id',
40+
field=models.ForeignKey(default=1, on_delete=models.deletion.CASCADE, to='sites.Site', verbose_name='ID Сайта'),
41+
),
42+
]

dj_hde/models.py

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,54 @@
11
from django.conf import settings
22
from django.db import models
33
from django_mysql.models import JSONField
4+
from django.contrib.sites.models import Site
5+
from django.utils.translation import gettext_lazy as _
46

57

6-
class Config(models.Model):
7-
domain = models.CharField(max_length=128, verbose_name='Домен')
8-
email = models.EmailField(verbose_name='Эл. почта')
9-
api_key = models.CharField(max_length=256, verbose_name='API ключ')
8+
class Department(models.Model):
9+
name = models.CharField(_('Наименование'), max_length=128)
1010
department_id = models.PositiveSmallIntegerField(
11-
verbose_name='id департамента',
12-
help_text='Для добавленяи в запросы создания заявок, пользователя и т.д.',
11+
verbose_name=_('id департамента'),
12+
help_text=_('Для добавленяи в запросы создания заявок, пользователя и т.д.'),
1313
null=True,
1414
blank=True
1515
)
16-
is_active = models.BooleanField(default=False, verbose_name='Активны')
1716

1817
class Meta:
19-
verbose_name = 'Настройки'
20-
verbose_name_plural = 'Настройки'
18+
verbose_name = _('Департамент')
19+
verbose_name_plural = _('Департаменты')
20+
21+
def __str__(self):
22+
return self.name
23+
24+
def natural_key(self):
25+
return (self.name,)
26+
27+
28+
class Config(models.Model):
29+
domain = models.CharField(max_length=128, verbose_name=_('Домен'))
30+
email = models.EmailField(verbose_name=_('Эл. почта'))
31+
api_key = models.CharField(max_length=256, verbose_name=_('API ключ'))
32+
departments = models.ManyToManyField(Department, verbose_name=_('Департаменты'))
33+
is_active = models.BooleanField(default=False, verbose_name=_('Активны'))
34+
site_id = models.ForeignKey(Site, default=1, on_delete=models.CASCADE, verbose_name=_('ID Сайта'))
35+
36+
class Meta:
37+
verbose_name = _('Настройки')
38+
verbose_name_plural = _('Настройки')
2139

2240

2341
class Ticket(models.Model):
24-
created_at = models.DateTimeField(auto_now_add=True, verbose_name='Дата и время создания')
25-
data = JSONField(max_length=256, verbose_name='Данные заявки')
42+
created_at = models.DateTimeField(auto_now_add=True, verbose_name=_('Дата и время создания'))
43+
data = JSONField(max_length=256, verbose_name=_('Данные заявки'))
2644
user = models.ForeignKey(
2745
settings.AUTH_USER_MODEL,
2846
on_delete=models.CASCADE,
29-
verbose_name='Пользователь',
47+
verbose_name=_('Пользователь'),
3048
null=True,
3149
blank=True,
3250
)
3351

3452
class Meta:
35-
verbose_name = 'Заявка'
36-
verbose_name_plural = 'Заявки'
53+
verbose_name = _('Заявка')
54+
verbose_name_plural = _('Заявки')

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
setup(
99
name='django-helpdeskeddy',
10-
version='0.1.0',
10+
version='0.1.1',
1111
packages=find_packages(),
1212
include_package_data=True,
1313
author='devxplorer',

0 commit comments

Comments
 (0)