from django import forms from django.contrib.auth.forms import UserCreationForm from django.forms import ModelForm from .models import Account, Hook, Strategy, Trade, TradingTime, User # Create your forms here. class NewUserForm(UserCreationForm): email = forms.EmailField(required=True) class Meta: model = User fields = ( "username", "email", "first_name", "last_name", "password1", "password2", ) def save(self, commit=True): user = super(NewUserForm, self).save(commit=False) user.email = self.cleaned_data["email"] if commit: user.save() return user class CustomUserCreationForm(UserCreationForm): class Meta: model = User fields = "__all__" class HookForm(ModelForm): class Meta: model = Hook fields = ( "name", "hook", "direction", ) class AccountForm(ModelForm): class Meta: model = Account fields = ( "name", "exchange", "api_key", "api_secret", "sandbox", ) class StrategyForm(ModelForm): class Meta: model = Strategy fields = ( "name", "description", "account", "trading_times", "order_type", "time_in_force", "hooks", "enabled", "take_profit_percent", "stop_loss_percent", "trailing_stop_loss_percent", "price_slippage_percent", "callback_price_deviation_percent", "trade_size_percent", ) hooks = forms.ModelMultipleChoiceField( queryset=Hook.objects.all(), widget=forms.CheckboxSelectMultiple ) trading_times = forms.ModelMultipleChoiceField( queryset=TradingTime.objects.all(), widget=forms.CheckboxSelectMultiple ) class TradeForm(ModelForm): class Meta: model = Trade fields = ( "account", "symbol", "type", "time_in_force", "amount", "price", "stop_loss", "trailing_stop_loss", "take_profit", "direction", ) class TradingTimeForm(ModelForm): class Meta: model = TradingTime fields = ( "name", "description", "start_day", "start_time", "end_day", "end_time", )