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'), )