40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
from crispy_forms.helper import FormHelper
|
|
from crispy_forms.layout import Layout, Fieldset
|
|
from django import forms
|
|
from django.forms import ModelForm
|
|
from djconfig.forms import ConfigForm
|
|
|
|
from bots.models import TelegramBot
|
|
|
|
|
|
class BotForm(ModelForm):
|
|
prefix = 'bot'
|
|
|
|
def __init__(self, *args, module, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
if not hasattr(module, 'rpc_dispatcher'):
|
|
self.fields.pop('rpc_name')
|
|
if not hasattr(module, 'periodic_task'):
|
|
self.fields.pop('periodic_interval')
|
|
self.fields.pop('periodic_last_run')
|
|
|
|
class Meta:
|
|
model = TelegramBot
|
|
exclude = 'owner', 'config_type', 'config_id',
|
|
|
|
|
|
class BotsAppConfigForm(ConfigForm):
|
|
slug = 'bots'
|
|
title = 'Bots'
|
|
|
|
tmp_uploads_chat_id = forms.CharField(required=True)
|
|
|
|
helper = FormHelper()
|
|
helper.form_class = 'form-horizontal'
|
|
helper.label_class = 'col-sm-2'
|
|
helper.field_class = 'col-sm-10'
|
|
helper.form_tag = False
|
|
helper.layout = Layout(
|
|
Fieldset('Global', 'tmp_uploads_chat_id'),
|
|
)
|