Created domain-detail view.
This commit is contained in:
parent
4f9babb7b4
commit
3db5aa8621
|
@ -18,6 +18,7 @@ API_PATHS = {
|
|||
# services
|
||||
'database-list': 'databases/',
|
||||
'domain-list': 'domains/',
|
||||
'domain-detail': 'domains/{pk}/',
|
||||
'address-list': 'addresses/',
|
||||
'mailbox-list': 'mailboxes/',
|
||||
'mailinglist-list': 'lists/',
|
||||
|
@ -55,9 +56,13 @@ class Orchestra(object):
|
|||
|
||||
return response.json().get("token", None)
|
||||
|
||||
def request(self, verb, resource, querystring=None, raise_exception=True):
|
||||
def request(self, verb, resource=None, querystring=None, url=None, raise_exception=True):
|
||||
assert verb in ["HEAD", "GET", "POST", "PATCH", "PUT", "DELETE"]
|
||||
if resource is not None:
|
||||
url = self.build_absolute_uri(resource)
|
||||
elif url is None:
|
||||
raise AttributeError("Provide `resource` or `url` params")
|
||||
|
||||
if querystring is not None:
|
||||
url = "{}?{}".format(url, querystring)
|
||||
|
||||
|
@ -86,6 +91,13 @@ class Orchestra(object):
|
|||
raise PermissionError("Cannot retrieve profile of an anonymous user.")
|
||||
return UserAccount.new_from_json(output[0])
|
||||
|
||||
def retrieve_domain(self, pk):
|
||||
path = API_PATHS.get('domain-detail').format_map({'pk': pk})
|
||||
|
||||
url = urllib.parse.urljoin(self.base_url, path)
|
||||
status, domain_json = self.request("GET", url=url)
|
||||
return Domain.new_from_json(domain_json)
|
||||
|
||||
def retrieve_domain_list(self):
|
||||
output = self.retrieve_service_list(Domain.api_name)
|
||||
domains = []
|
||||
|
|
28
musician/templates/musician/domain_detail.html
Normal file
28
musician/templates/musician/domain_detail.html
Normal file
|
@ -0,0 +1,28 @@
|
|||
{% extends "musician/base.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
<h1 class="service-name">{% trans "DNS settings for" %} <span class="font-weight-light">{{ object.name }}</span></h1>
|
||||
<p class="service-description">Litle description of what to be expected in this section to aid the user. Even a link to more help if there is one available.</p>
|
||||
|
||||
<table class="table service-list">
|
||||
<colgroup>
|
||||
<col span="1" style="width: 12%;">
|
||||
<col span="1" style="width: 88%;">
|
||||
</colgroup>
|
||||
<thead class="thead-dark">
|
||||
<tr>
|
||||
<th scope="col">{% trans "Type" %}</th>
|
||||
<th scope="col">{% trans "Value" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for record in object.records %}
|
||||
<tr>
|
||||
<td>{{ record.type }}</td>
|
||||
<td>{{ record.value }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
|
@ -15,6 +15,7 @@ urlpatterns = [
|
|||
path('auth/login/', views.LoginView.as_view(), name='login'),
|
||||
path('auth/logout/', views.LogoutView.as_view(), name='logout'),
|
||||
path('dashboard/', views.DashboardView.as_view(), name='dashboard'),
|
||||
path('domains/<int:pk>/', views.DomainDetailView.as_view(), name='domain-detail'),
|
||||
path('billing/', views.BillingView.as_view(), name='billing'),
|
||||
path('profile/', views.ProfileView.as_view(), name='profile'),
|
||||
path('mails/', views.MailView.as_view(), name='mails'),
|
||||
|
|
|
@ -186,6 +186,26 @@ class SaasView(ServiceListView):
|
|||
template_name = "musician/saas.html"
|
||||
|
||||
|
||||
class DomainDetailView(CustomContextMixin, UserTokenRequiredMixin, DetailView):
|
||||
template_name = "musician/domain_detail.html"
|
||||
|
||||
def get_queryset(self):
|
||||
return [] # self.orchestra.retrieve_domain_list()
|
||||
|
||||
def get_object(self, queryset=None):
|
||||
if queryset is None:
|
||||
queryset = self.get_queryset()
|
||||
|
||||
pk = self.kwargs.get(self.pk_url_kwarg)
|
||||
# TODO try to retrieve object capturing exception
|
||||
try:
|
||||
domain = self.orchestra.retrieve_domain(pk)
|
||||
except:
|
||||
raise
|
||||
|
||||
return domain
|
||||
|
||||
|
||||
class LoginView(FormView):
|
||||
template_name = 'auth/login.html'
|
||||
form_class = LoginForm
|
||||
|
|
Loading…
Reference in a new issue