add TG CSV export

This commit is contained in:
KF7EEL 2021-08-02 13:15:43 -07:00
parent 2d23f9521f
commit 601656b448
2 changed files with 27 additions and 17 deletions

View File

@ -21,7 +21,7 @@
Flask based application that is the web server for HBNet. Controls user authentication, DMR server config, etc. Flask based application that is the web server for HBNet. Controls user authentication, DMR server config, etc.
''' '''
from flask import Flask, render_template_string, request, make_response, jsonify, render_template, Markup, flash, redirect, url_for, current_app from flask import Flask, render_template_string, request, make_response, jsonify, render_template, Markup, flash, redirect, url_for, current_app, Response
from flask_sqlalchemy import SQLAlchemy from flask_sqlalchemy import SQLAlchemy
from flask_user import login_required, UserManager, UserMixin, user_registered, roles_required from flask_user import login_required, UserManager, UserMixin, user_registered, roles_required
from werkzeug.security import check_password_hash from werkzeug.security import check_password_hash
@ -1801,6 +1801,16 @@ def create_app():
<p>&nbsp;</p>''' <p>&nbsp;</p>'''
return render_template('flask_user_layout.html', markup_content = Markup(content)) return render_template('flask_user_layout.html', markup_content = Markup(content))
@app.route('/hbnet_tg.csv')
## @login_required
def tg_csv():
cbl = BridgeList.query.filter_by(public_list=True).all()
gen_csv = 'number, name\n'
for t in cbl:
gen_csv = gen_csv + str(t.tg) + ', ' + t.bridge_name + '\n'
response = Response(gen_csv, mimetype="text/csv")
return response
@app.route('/talkgroups') @app.route('/talkgroups')
## @login_required ## @login_required
def tg_list(): def tg_list():
@ -1809,7 +1819,7 @@ def create_app():
content = ''' content = '''
<p>&nbsp;</p> <p>&nbsp;</p>
<p style="text-align: center;"><strong>Note:</strong> Talkgroups listed here may not be available on all servers. See <a href="/generate_passphrase">Passphrase(s)</a> for complete list of talkgroup availability per server.</p> <p style="text-align: center;"><strong>Note:</strong> Talkgroups listed here may not be available on all servers. See <a href="/generate_passphrase">Passphrase(s)</a> for complete list of talkgroup availability per server.</p>
<p style="text-align: center;"><a href="talkgrousp_csv"><strong>Download talkgroup CSV</strong></a></p> <p style="text-align: center;"><a href="hbnet_tg.csv"><strong>Download talkgroup CSV</strong></a></p>
<table style="width: 600px; margin-left: auto; margin-right: auto;" border="1"> <table style="width: 600px; margin-left: auto; margin-right: auto;" border="1">
<tbody> <tbody>
<tr> <tr>

View File

@ -38,9 +38,9 @@
<tbody> <tbody>
<tr> <tr>
<td style="text-align: center;"><a href={{url}}/>Home</a></td> <td style="text-align: center;"><a href=/>Home</a></td>
<td style="text-align: center;"><a href={{url}}/news>News</a></td> <td style="text-align: center;"><a href=news>News</a></td>
<td style="text-align: center;"><a href={{url}}/talkgroups>Talkgroups</a></td> <td style="text-align: center;"><a href=talkgroups>Talkgroups</a></td>
{% if not call_or_get(current_user.is_authenticated) %} {% if not call_or_get(current_user.is_authenticated) %}
<td style="text-align: center;"><a href={{ url_for('user.register') }}>Register</a></td> <td style="text-align: center;"><a href={{ url_for('user.register') }}>Register</a></td>
@ -48,15 +48,15 @@
{% endif %} {% endif %}
{% if call_or_get(current_user.is_authenticated) %} {% if call_or_get(current_user.is_authenticated) %}
{% if call_or_get(current_user.has_roles('Admin')) %} {% if call_or_get(current_user.has_roles('Admin')) %}
<td style="text-align: center;"><a href={{url}}/add_user><strong>Add a User</strong></a></td> <td style="text-align: center;"><a href=add_user><strong>Add a User</strong></a></td>
<td style="text-align: center;"><a href={{url}}/list_users><strong>Edit Users</strong></a></td> <td style="text-align: center;"><a href=list_users><strong>Edit Users</strong></a></td>
<td style="text-align: center;"><a href={{url}}/approve_users><strong>Waiting Approval</strong></a></td> <td style="text-align: center;"><a href=approve_users><strong>Waiting Approval</strong></a></td>
<td style="text-align: center;"><a href={{url}}/auth_log><strong>Auth Log</strong></a></td> <td style="text-align: center;"><a href=auth_log><strong>Auth Log</strong></a></td>
{% endif %} {% endif %}
<td style="text-align: center;"><a href={{url}}/help>Help</a></td> <td style="text-align: center;"><a href=help>Help</a></td>
<td style="text-align: center;"><a href={{url}}/generate_passphrase>Passphrase(s)</a></td> <td style="text-align: center;"><a href=generate_passphrase>Passphrase(s)</a></td>
<!-- <td style="text-align: center;"><a href={{url}}/user_tg>Current TGs</a></td> --> <!-- <td style="text-align: center;"><a href=user_tg>Current TGs</a></td> -->
<td style="text-align: center;"><a href="{{ url_for('user.edit_user_profile') }}">Edit {{ current_user.username or current_user.email }}</a></td> <td style="text-align: center;"><a href="{{ url_for('user.edit_user_profile') }}">Edit {{ current_user.username or current_user.email }}</a></td>
<td style="text-align: center;"><a href={{ url_for('user.logout') }}>Sign out</a></td> <td style="text-align: center;"><a href={{ url_for('user.logout') }}>Sign out</a></td>
{% endif %} {% endif %}
@ -69,11 +69,11 @@
<table style="width: 800px; margin-left: auto; margin-right: auto;" border="black" cellspacing="3" cellpadding="3"> <table style="width: 800px; margin-left: auto; margin-right: auto;" border="black" cellspacing="3" cellpadding="3">
<tbody> <tbody>
<tr> <tr>
<td style="text-align: center;"><a href={{url}}/manage_servers>Manage Servers</a></td> <td style="text-align: center;"><a href=manage_servers>Manage Servers</a></td>
<td style="text-align: center;"><a href={{url}}/manage_peers>Manage Peers</a></td> <td style="text-align: center;"><a href=manage_peers>Manage Peers</a></td>
<td style="text-align: center;"><a href={{url}}/manage_masters>Manage Masters</a></td> <td style="text-align: center;"><a href=manage_masters>Manage Masters</a></td>
<td style="text-align: center;"><a href={{url}}/manage_rules>Manage Rules</a></td> <td style="text-align: center;"><a href=manage_rules>Manage Rules</a></td>
<td style="text-align: center;"><a href={{url}}/manage_news>Manage News</a></td> <td style="text-align: center;"><a href=manage_news>Manage News</a></td>
</tr> </tr>
</tbody> </tbody>