You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.3 KiB

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)
aws_access_key_id = forms.CharField(required=True)
aws_secret_access_key = forms.CharField(required=True)
s3_bucket = 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'),
Fieldset('Amazon S3', 'aws_access_key_id', 'aws_secret_access_key', 's3_bucket'),
)