* add portugues opition on index * add portugues folder * translate app.md * translate before.md * translate title of app and before * translate bench.md * translate conclusion * translate new-app.md * translate setting-up-the-site.md * translate start.md * translate models.md * translate roles.md * translate doctypes.md * translate naming-and-liking.md * translate doctype-directory-structure.md * translate users-and-records.md * translate page form-client-scripting.md * translate page controllers.md * translate page reports.md * translate page web-views.md * translate page single-doctypes.md * translate page taks-runner.md * translate change cargo to role
64 lines
2.8 KiB
Markdown
Executable file
64 lines
2.8 KiB
Markdown
Executable file
# Web Views
|
|
|
|
Frappe tem dois ambientes de usuário principais, o Desk e o Web. Desk é um ambiente UI controlado com uma rica aplicação AJAX e a web usa template HTML tradicional que serve para consumo público. Web Views também podem ser gerados para criar views mais controladas para os usuários que pode fazer o login mas ainda não têm acesso à Desk.
|
|
|
|
Em Frappe, Web Views são geridas por modelos e eles geralmente estão na pasta `templates`. Existem 2 tipos principais de templates.
|
|
|
|
1. Pages: Estes são Jinja Templates, onde existe uma única view para uma única rota web, por exemplo, `/blog`.
|
|
2. Generators: Estes são templates em que cada instância de um DocType tem uma rota web separada `/blog/a-blog`, `blog/b-blog` etc.
|
|
3. Lists and Views: Estas são listas e views padrões com a rota `[doctype]/[name]` e são processadas com base na permissão.
|
|
|
|
### Standard Web Views
|
|
|
|
> Esta funcionalidade ainda esta em desenvolvimento.
|
|
|
|
Vamos dar uma olhada na standard Web Views:
|
|
|
|
Se você estiver logado como usuário de teste, vá para `/article` e você deverá ver a lista de artigos:
|
|
|
|

|
|
|
|
Clique em um artigo e você vai ver uma Web View padrão
|
|
|
|

|
|
|
|
Agora, se você quiser fazer uma List View melhor para o artigo, crie um arquivo chamado `list_item.html` na pasta `library_management/doctype/article`. Aqui está um exemplo de arquivo:
|
|
|
|
{% raw %}<div class="row">
|
|
<div class="col-sm-4">
|
|
<a href="/Article/{{ doc.name }}">
|
|
<img src="{{ doc.image }}"
|
|
class="img-responsive" style="max-height: 200px">
|
|
</a>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<a href="/Article/{{ doc.name }}"><h4>{{ doc.article_name }}</h4></a>
|
|
<p>{{ doc.author }}</p>
|
|
<p>{{ (doc.description[:200] + "...")
|
|
if doc.description|len > 200 else doc.description }}</p>
|
|
<p class="text-muted">Publisher: {{ doc.publisher }}</p>
|
|
</div>
|
|
</div>{% endraw %}
|
|
|
|
|
|
Aqui, você vai ter todas as propriedades do artigo no objeto `doc`.
|
|
|
|
A List View atualizada se parece com isso!
|
|
|
|

|
|
|
|
#### Home Page
|
|
|
|
Frappe também tem um fluxo de trabalho de inscrição built-in que também inclui inscrições de terceiros via Google, Facebook e GitHub. Quando um usuário se inscreve na web, ele não tem acesso à interface Desk por padrão.
|
|
|
|
> Para permitir o acesso do usuário ao Desk, abra as configurações pelo Setup > User e defina o usuário como "System User"
|
|
|
|
Agora, para os não usuários do sistema, podemos definir uma home page para quando eles fizerem login via `hooks.py` com baseado na Role.
|
|
|
|
Para quando os membros da biblioteca entrarem, eles devem ser redirecionado para a página `article`, para abrir o arquivo `library_management/hooks.py` adicione:
|
|
|
|
role_home_page = {
|
|
"Library Member": "article"
|
|
}
|
|
|
|
{next}
|