Changed: Updated layout, menu and permissions

This commit is contained in:
Markus Schmidt 2021-10-21 16:07:54 +02:00
parent 14b1c8fe7d
commit aad1720792
4 changed files with 19 additions and 113 deletions

View File

@ -52,6 +52,7 @@ global response
model_mod_path = 'private/model' model_mod_path = 'private/model'
@auth.requires_membership('manager')
def index(): def index():
media_files = db().select(db.media_file.ALL, orderby=db.media_file.title) media_files = db().select(db.media_file.ALL, orderby=db.media_file.title)
return dict(media_files=media_files) return dict(media_files=media_files)
@ -63,6 +64,7 @@ def manage():
return dict(grid=grid) return dict(grid=grid)
@auth.requires_membership('manager')
def webvtt_single_line(): def webvtt_single_line():
# Get mediafile from request # Get mediafile from request
media_file = (db.media_file(request.args(0, cast=int)) or media_file = (db.media_file(request.args(0, cast=int)) or
@ -128,6 +130,7 @@ def webvtt_single_line():
redirect(request.env.http_referer) redirect(request.env.http_referer)
@auth.requires_membership('manager')
def webvtt(): def webvtt():
# Get mediafile from request # Get mediafile from request
media_file = (db.media_file(request.args(0, cast=int)) or media_file = (db.media_file(request.args(0, cast=int)) or
@ -184,6 +187,7 @@ def webvtt():
redirect(request.env.http_referer) redirect(request.env.http_referer)
@auth.requires_membership('manager')
def download_webvtt_single_line(): def download_webvtt_single_line():
media_file = (db.media_file(request.args(0, cast=int)) or media_file = (db.media_file(request.args(0, cast=int)) or
@ -200,6 +204,7 @@ def download_webvtt_single_line():
return(f) return(f)
@auth.requires_membership('manager')
def download_webvtt(): def download_webvtt():
media_file = (db.media_file(request.args(0, cast=int)) or media_file = (db.media_file(request.args(0, cast=int)) or

View File

@ -170,9 +170,11 @@
'Logout': 'Abmelden', 'Logout': 'Abmelden',
'Lost Password': 'Passwort vergessen', 'Lost Password': 'Passwort vergessen',
'Lost your password?': 'Passwort verloren?', 'Lost your password?': 'Passwort verloren?',
'Manage': 'Manage',
'Manage %(action)s': '%(action)s verwalten', 'Manage %(action)s': '%(action)s verwalten',
'Manage Access Control': 'Zugangskontrolle verwalten', 'Manage Access Control': 'Zugangskontrolle verwalten',
'Manage Cache': 'Cache verwalten', 'Manage Cache': 'Cache verwalten',
'Manage media': 'Mediendateien verwalten',
'Media files': 'Media files', 'Media files': 'Media files',
'Memberships': 'Mitgliedschaften', 'Memberships': 'Mitgliedschaften',
'Menu Model': 'Menü-Muster', 'Menu Model': 'Menü-Muster',

View File

@ -1,110 +1,16 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# this file is released under public domain and you can use without limitations
# ---------------------------------------------------------------------------------------------------------------------- global response, T, URL
# this is the main application menu add/remove items as required
# ---------------------------------------------------------------------------------------------------------------------- response.title = 'Transcribe'
response.subtitle = 'Transcribe audio and video'
response.meta.author = 'Markus Schmidt'
response.meta.description = 'describe your app'
response.meta.keywords = 'Application for transcribing media data'
response.logourl = URL('default', 'index')
response.menu = [ response.menu = [
(T('Home'), False, URL('default', 'index'), []) (T('Home'), False, URL('default', 'index'), []),
] (T('Manage media'), False, URL('default', 'manage'), [])
# ----------------------------------------------------------------------------------------------------------------------
# provide shortcuts for development. you can remove everything below in production
# ----------------------------------------------------------------------------------------------------------------------
if not configuration.get('app.production'):
_app = request.application
response.menu += [
(T('My Sites'), False, URL('admin', 'default', 'site')),
(T('This App'), False, '#', [
(T('Design'), False, URL('admin', 'default', 'design/%s' % _app)),
(T('Controller'), False,
URL(
'admin', 'default', 'edit/%s/controllers/%s.py' % (_app, request.controller))),
(T('View'), False,
URL(
'admin', 'default', 'edit/%s/views/%s' % (_app, response.view))),
(T('DB Model'), False,
URL(
'admin', 'default', 'edit/%s/models/db.py' % _app)),
(T('Menu Model'), False,
URL(
'admin', 'default', 'edit/%s/models/menu.py' % _app)),
(T('Config.ini'), False,
URL(
'admin', 'default', 'edit/%s/private/appconfig.ini' % _app)),
(T('Layout'), False,
URL(
'admin', 'default', 'edit/%s/views/layout.html' % _app)),
(T('Stylesheet'), False,
URL(
'admin', 'default', 'edit/%s/static/css/web2py-bootstrap3.css' % _app)),
(T('Database'), False, URL(_app, 'appadmin', 'index')),
(T('Errors'), False, URL(
'admin', 'default', 'errors/' + _app)),
(T('About'), False, URL(
'admin', 'default', 'about/' + _app)),
]),
('web2py.com', False, '#', [
(T('Download'), False,
'http://www.web2py.com/examples/default/download'),
(T('Support'), False,
'http://www.web2py.com/examples/default/support'),
(T('Demo'), False, 'http://web2py.com/demo_admin'),
(T('Quick Examples'), False,
'http://web2py.com/examples/default/examples'),
(T('FAQ'), False, 'http://web2py.com/AlterEgo'),
(T('Videos'), False,
'http://www.web2py.com/examples/default/videos/'),
(T('Free Applications'),
False, 'http://web2py.com/appliances'),
(T('Plugins'), False, 'http://web2py.com/plugins'),
(T('Recipes'), False, 'http://web2pyslices.com/'),
]),
(T('Documentation'), False, '#', [
(T('Online book'), False, 'http://www.web2py.com/book'),
(T('Preface'), False,
'http://www.web2py.com/book/default/chapter/00'),
(T('Introduction'), False,
'http://www.web2py.com/book/default/chapter/01'),
(T('Python'), False,
'http://www.web2py.com/book/default/chapter/02'),
(T('Overview'), False,
'http://www.web2py.com/book/default/chapter/03'),
(T('The Core'), False,
'http://www.web2py.com/book/default/chapter/04'),
(T('The Views'), False,
'http://www.web2py.com/book/default/chapter/05'),
(T('Database'), False,
'http://www.web2py.com/book/default/chapter/06'),
(T('Forms and Validators'), False,
'http://www.web2py.com/book/default/chapter/07'),
(T('Email and SMS'), False,
'http://www.web2py.com/book/default/chapter/08'),
(T('Access Control'), False,
'http://www.web2py.com/book/default/chapter/09'),
(T('Services'), False,
'http://www.web2py.com/book/default/chapter/10'),
(T('Ajax Recipes'), False,
'http://www.web2py.com/book/default/chapter/11'),
(T('Components and Plugins'), False,
'http://www.web2py.com/book/default/chapter/12'),
(T('Deployment Recipes'), False,
'http://www.web2py.com/book/default/chapter/13'),
(T('Other Recipes'), False,
'http://www.web2py.com/book/default/chapter/14'),
(T('Helping web2py'), False,
'http://www.web2py.com/book/default/chapter/15'),
(T("Buy web2py's book"), False,
'http://stores.lulu.com/web2py'),
]),
(T('Community'), False, None, [
(T('Groups'), False,
'http://www.web2py.com/examples/default/usergroups'),
(T('Twitter'), False, 'http://twitter.com/web2py'),
(T('Live Chat'), False,
'http://webchat.freenode.net/?channels=web2py'),
]),
] ]

View File

@ -36,7 +36,7 @@
<div class="w2p_flash alert alert-dismissable">{{=response.flash or ''}}</div> <div class="w2p_flash alert alert-dismissable">{{=response.flash or ''}}</div>
<!-- Navbar ======================================= --> <!-- Navbar ======================================= -->
<nav class="navbar navbar-light navbar-expand-md bg-faded bg-dark navbar-dark justify-content-center"> <nav class="navbar navbar-light navbar-expand-md bg-faded bg-dark navbar-dark justify-content-center">
<a href="http://web2py.com" class="navbar-brand d-flex w-50 mr-auto">web2py</a> <a href="{{=response.logourl}}" class="navbar-brand d-flex w-50 mr-auto">Transcription</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation"> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span> <span class="navbar-toggler-icon"></span>
</button> </button>
@ -59,9 +59,6 @@
{{pass}} {{pass}}
{{pass}} {{pass}}
</ul> </ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="text" placeholder="Search">
</form>
{{if 'auth' in globals():}} {{if 'auth' in globals():}}
<ul class="nav navbar-nav ml-auto w-100 justify-content-end"> <ul class="nav navbar-nav ml-auto w-100 justify-content-end">
<li class="nav-item dropdown"> <li class="nav-item dropdown">
@ -105,11 +102,7 @@
<footer class="footer container-fluid"> <footer class="footer container-fluid">
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="copyright pull-left">{{=T('Copyright')}} &#169; {{=request.now.year}}</div>
<div id="poweredBy" class="pull-right">
{{=T('Powered by')}}
<a href="http://www.web2py.com/">web2py</a>
</div>
</div> </div>
</div> </div>
</footer> </footer>