from django.contrib.auth.mixins import LoginRequiredMixin from mixins.views import ObjectCreate, ObjectDelete, ObjectList, ObjectUpdate from two_factor.views.mixins import OTPRequiredMixin from core.forms import OperatorWalletsForm, WalletForm from core.models import OperatorWallets, Wallet class WalletList(LoginRequiredMixin, OTPRequiredMixin, ObjectList): list_template = "partials/wallet-list.html" model = Wallet page_title = "List of wallets to send profit to" list_url_name = "wallets" list_url_args = ["type"] submit_url_name = "wallet_create" class WalletCreate(LoginRequiredMixin, OTPRequiredMixin, ObjectCreate): model = Wallet form_class = WalletForm submit_url_name = "wallet_create" class WalletUpdate(LoginRequiredMixin, OTPRequiredMixin, ObjectUpdate): model = Wallet form_class = WalletForm submit_url_name = "wallet_update" class WalletDelete(LoginRequiredMixin, OTPRequiredMixin, ObjectDelete): model = Wallet class OperatorWalletsUpdate(LoginRequiredMixin, ObjectUpdate): model = OperatorWallets form_class = OperatorWalletsForm page_title = "Update your designated wallets" submit_url_name = "operator_wallets_update" submit_url_args = ["type"] pk_required = False hide_cancel = True def get_object(self, **kwargs): wallet, _ = OperatorWallets.objects.get_or_create(user=self.request.user) return wallet