pluto/core/views/wallets.py

54 lines
1.4 KiB
Python

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