from django.contrib.auth.mixins import LoginRequiredMixin from django.urls import reverse from mixins.views import ObjectCreate, ObjectDelete, ObjectList, ObjectUpdate from core.forms import AIForm from core.models import AI from core.util import logs log = logs.get_logger(__name__) class AIList(LoginRequiredMixin, ObjectList): list_template = "partials/ai-list.html" model = AI page_title = None # page_subtitle = "Add times here in order to permit trading." list_url_name = "ais" list_url_args = ["type"] submit_url_name = "ai_create" def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) current_path = str(getattr(self.request, "path", "") or "") models_path = reverse("ai_models") traces_path = reverse("ai_execution_log") context["settings_nav"] = { "title": "AI", "tabs": [ { "label": "Models", "href": models_path, "active": current_path == models_path, }, { "label": "Traces", "href": traces_path, "active": current_path == traces_path, }, ], } return context class AICreate(LoginRequiredMixin, ObjectCreate): model = AI form_class = AIForm submit_url_name = "ai_create" class AIUpdate(LoginRequiredMixin, ObjectUpdate): model = AI form_class = AIForm submit_url_name = "ai_update" class AIDelete(LoginRequiredMixin, ObjectDelete): model = AI