{{ filename }}
++ {% if mode == 'edit' %}{% trans "Редактирование в OnlyOffice" %}{% else %}{% trans "Просмотр в OnlyOffice" %}{% endif %} +
+diff --git a/apps/employees/middleware.py b/apps/employees/middleware.py index a2a56ce..bd94d4f 100644 --- a/apps/employees/middleware.py +++ b/apps/employees/middleware.py @@ -40,6 +40,7 @@ class TwoFactorMiddleware: '/2fa/', '/logout/', '/accounts/login/', '/login/', '/set-password/', '/admin/login/', '/admin/logout/', '/i18n/', '/static/', + '/documents/onlyoffice/', # Document Server забирает файл без сессии портала ) def __init__(self, get_response): diff --git a/core/admin.py b/core/admin.py index 581e541..40de151 100644 --- a/core/admin.py +++ b/core/admin.py @@ -274,6 +274,11 @@ class ConnectorConfigAdmin(ModelAdmin): }), (_('Дополнительные параметры'), { 'fields': ('extra_config',), + 'description': _( + 'OnlyOffice: {"public_url": "https://docs.example", ' + '"callback_base": "https://portal.example"} — ' + 'token = JWT_SECRET Document Server. Nextcloud остаётся хранилищем файлов.' + ), }), ) diff --git a/core/migrations/0019_onlyoffice_connector.py b/core/migrations/0019_onlyoffice_connector.py new file mode 100644 index 0000000..d5c6f5f --- /dev/null +++ b/core/migrations/0019_onlyoffice_connector.py @@ -0,0 +1,30 @@ +# Generated by Django 6.0.3 on 2026-09-10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0018_recruiting_pharmacy_access'), + ] + + operations = [ + migrations.AlterField( + model_name='connectorconfig', + name='connector_type', + field=models.CharField( + choices=[ + ('mattermost', 'Mattermost'), + ('ad', 'Active Directory'), + ('carbonio', 'Carbonio CE'), + ('mail', 'Почта (IMAP/SMTP)'), + ('nextcloud', 'Nextcloud'), + ('onlyoffice', 'OnlyOffice'), + ], + max_length=20, + unique=True, + verbose_name='Тип коннектора', + ), + ), + ] diff --git a/core/models/connector_config.py b/core/models/connector_config.py index 117eb07..662d8a8 100644 --- a/core/models/connector_config.py +++ b/core/models/connector_config.py @@ -12,6 +12,7 @@ class ConnectorConfig(BaseModel): ('carbonio', 'Carbonio CE'), ('mail', 'Почта (IMAP/SMTP)'), ('nextcloud', 'Nextcloud'), + ('onlyoffice', 'OnlyOffice'), ] connector_type = models.CharField( @@ -38,7 +39,12 @@ class ConnectorConfig(BaseModel): # Дополнительные параметры коннектора extra_config = models.JSONField( _('Дополнительные параметры'), default=dict, blank=True, - help_text=_('Специфичные для коннектора настройки в формате JSON') + help_text=_( + 'JSON. Nextcloud: verify_ssl, timeout. ' + 'OnlyOffice: public_url (URL Document Server), ' + 'callback_base (публичный URL портала для скачивания/сохранения файла), ' + 'verify_ssl.' + ), ) notes = models.TextField(_('Примечания'), blank=True) diff --git a/templates/pages/documents-editor.html b/templates/pages/documents-editor.html new file mode 100644 index 0000000..fd8c4ed --- /dev/null +++ b/templates/pages/documents-editor.html @@ -0,0 +1,36 @@ +{% load i18n %} +
+ {% if mode == 'edit' %}{% trans "Редактирование в OnlyOffice" %}{% else %}{% trans "Просмотр в OnlyOffice" %}{% endif %} +
+