Browse Source

Customiza layout do drf docs.

pull/739/head
LeandroRoberto 8 years ago
parent
commit
d0cf2b7f81
  1. 81
      sapl/templates/rest_framework_docs/base.html
  2. 123
      sapl/templates/rest_framework_docs/home.html
  3. 1
      sapl/utils.py

81
sapl/templates/rest_framework_docs/base.html

@ -0,0 +1,81 @@
{% load static from staticfiles %}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{% block title %}DRF Docs{% endblock %}</title>
{% block style %}
<link rel="stylesheet" href="{% static "rest_framework_docs/css/style.css" %}">
{% endblock %}
</head>
<body>
{% block github_badge %}
<a href="https://github.com/ekonstantinidis/drf-docs/" class="github-corner" target="_blank">
<svg width="80" height="80" viewBox="0 0 250 250" style="fill:#18bc9c; color:#fff; position: absolute; top: 0; border: 0; right: 0;">
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
<path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path>
<path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path>
</svg>
</a>
{% endblock %}
<div class="container">
<nav class="navbar navbar-default">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#drfdoc-navbar" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
{% block logo %}<a class="navbar-brand" href="http://www.drfdocs.com/">DRF Docs</a>{% endblock %}
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="drfdoc-navbar">
<form method="get" action="." class="navbar-form navbar-right" role="search">
<div class="form-group">
<input type="text" class="form-control" name="search" value="{{ query }}" placeholder="Search">
</div>
</form>
<ul class="nav navbar-nav navbar-right">
{% block apps_menu %}{% endblock %}
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
{% block jumbotron %}
<div class="jumbotron">
<h1>DRF Docs</h1>
<h3>Document Web APIs made with <a href="http://www.django-rest-framework.org/" target="_blank">Django REST Framework</a>.</h3>
</div>
{% endblock %}
{% block content %}{% endblock %}
{% block footer %}
<div class="footer">
<div class="links">
<a href="http://www.iamemmanouil.com"><i class="fa fa-link"></i></a>
<a href="http://www.github.com/ekonstantinidis"><i class="fa fa-github"></i></a>
<a href="http://www.twitter.com/iamemmanouil"><i class="fa fa-twitter"></i></a>
</div>
Copyright © 2016 Emmanouil Konstantinidis.
</div>
{% endblock %}
</div>
<!-- Dist.js - Inlcuded Live API, jQuery, Bootstrap -->
<script type="text/javascript" src="{% static "rest_framework_docs/js/dist.min.js" %}"></script>
</body>
</html>

123
sapl/templates/rest_framework_docs/home.html

@ -0,0 +1,123 @@
{% extends "rest_framework_docs/docs.html" %}
{% block style %}{{block.super}}
<style media="screen">
.lead {
font-size: 14px;
}
</style>
{% endblock %}
{% block logo %}
<a class="navbar-brand" href="http://sapl31demo.interlegis.leg.br">DRF Docs - SAPL - Sistema de Apoio ao Processo Legislativo</a>
{% endblock %}
{% block title %}SAPL - Sistema de Apoio ao Processo Legislativo{% endblock %}
{% block jumbotron %}
<div class="jumbotron">
<h1>SAPL </h1>
<h3>Sistema de Apoio ao Processo Legislativo.</h3>
</div>
{% endblock %}
{% block apps_menu %}
{% regroup endpoints by name_parent as endpoints_grouped %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Jump To <span class="caret"></span></a>
<ul class="dropdown-menu">
{% for group in endpoints_grouped %}
<li><a href="#{{ group.grouper|lower }}-group">{{ group.grouper }}</a></li>
{% endfor %}
</ul>
</li>
{% endblock %}
{% block content %}
{% regroup endpoints by name_parent as endpoints_grouped %}
{% if endpoints_grouped %}
{% for group in endpoints_grouped %}
<h1 id="{{ group.grouper|lower }}-group">{{group.grouper}}</h1>
<div class="panel-group" role="tablist">
{% for endpoint in group.list %}
<div class="panel panel-default endpoint">
<div class="panel-heading" role="tab" data-toggle="collapse" data-target="#{{ endpoint.path|slugify }}">
<div class="row">
<div class="col-md-7">
<h4 class="panel-title title">
<i class="fa fa-link"></i> {{ endpoint.path }}
</h4>
</div>
<div class="col-md-5">
<ul class="list-inline methods">
{% for method in endpoint.allowed_methods %}
<li class="method {{ method|lower }}">{{ method }}</li>
{% endfor %}
<li class="method plug"
data-toggle="modal"
data-path="{{ endpoint.path }}"
data-methods="{{ endpoint.allowed_methods }}"
data-permissions="{{ endpoint.permissions }}"
data-fields="{{ endpoint.fields_json }}">
<i class="fa fa-plug"></i></li>
</ul>
</div>
</div>
</div>
<div id="{{ endpoint.path|slugify }}" class="panel-collapse collapse" role="tabpanel">
<div class="panel-body">
{% if endpoint.docstring %}
<pre class="lead">{{ endpoint.docstring}}</pre>
{% endif %}
{% if endpoint.errors %}
<div class="alert alert-danger" role="alert">Oops! There was something wrong with {{ endpoint.errors }}. Please check your code.</div>
{% endif %}
{% if endpoint.fields %}
<p class="fields-desc">Fields:</p>
<ul class="list fields">
{% for field in endpoint.fields %}
<li class="field">{{ field.name }}: {{ field.type }} {% if field.required %}<span class="label label-primary label-required" title="Required">R</span>{% endif %}</li>
{% endfor %}
</ul>
{% elif not endpoint.errors %}
<p>No fields.</p>
{% endif %}
</div>
</div>
</div>
{% endfor %}
</div>
{% endfor %}
{% elif not query %}
<h2 class="text-center">There are currently no api endpoints to document.</h2>
{% else %}
<h2 class="text-center">No endpoints found for {{ query }}.</h2>
{% endif %}
<!-- Modal -->
<div class="modal fade api-modal" id="liveAPIModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">Live API Endpoints <span class="label label-info">Beta</span></h4>
</div>
<div id="liveAPIEndpoints"></div>
</div>
</div>
</div>
{% endblock %}

1
sapl/utils.py

@ -18,7 +18,6 @@ from django.core.exceptions import PermissionDenied, ValidationError
from django.utils.translation import ugettext_lazy as _
from floppyforms import ClearableFileInput
from sapl.crispy_layout_mixin import SaplFormLayout, form_actions, to_row
<<<<<<< 2783b194c573b2b8182c47369b2d251ae6cf8880
import magic
from sapl.settings import BASE_DIR

Loading…
Cancel
Save