Merge pull request #39 from sartography/pb-current-user-studies-only-173

Pb current user studies only 173
This commit is contained in:
Dan Funk 2021-02-23 11:02:34 -05:00 committed by GitHub
commit d8074ad21c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 59 additions and 7 deletions

View File

@ -161,16 +161,32 @@ from pb.models import Study, RequiredDocument, Investigator, StudySchema, Requir
from pb.ldap.ldap_service import LdapService
def render_study_template(studies):
table = StudyTable(studies)
users = []
[users.append(study.NETBADGEID) for study in studies if study.NETBADGEID not in users]
return render_template(
'index.html',
table=table,
base_href=BASE_HREF,
users=users
)
@app.route('/', methods=['GET', 'POST'])
def index():
# display results
studies = db.session.query(Study).order_by(Study.DATE_MODIFIED.desc()).all()
table = StudyTable(studies)
return render_template(
'index.html',
table=table,
base_href=BASE_HREF
)
return render_study_template(studies)
@app.route('/user_studies/', defaults={'uva_id': 'all'})
@app.route('/user_studies/<uva_id>', methods=['GET'])
def user_studies(uva_id):
if uva_id == 'all':
return redirect(f"/")
studies = db.session.query(Study).filter(Study.NETBADGEID == uva_id).order_by(Study.DATE_MODIFIED.desc()).all()
return render_study_template(studies)
@app.route('/new_study', methods=['GET', 'POST'])

View File

@ -52,7 +52,7 @@ $(document).ready(function () {
function SearchLDAP(event) {
let current_val = $('#NETBADGEID').val();
let url = "./search_ldap/" + current_val;
let url = {{ base_href }} + "/search_ldap/" + current_val;
$.ajax({
url: url,

View File

@ -16,6 +16,18 @@
<p>
<a class="btn btn-primary" href="{{ url_for('.new_study') }}"> New Study </a>
</p>
<p>
<label>User Studies</label>
<select name="uva_id" id="uva_id" onclick="selectStudies()">
<option value="">Select User</option>
<option value="all">All Users</option>
{% if users %}
{% for user in users %}
<option value="{{ user }}">{{ user }}</option>
{% endfor %}
{% endif %}
</select>
</p>
{% with messages = get_flashed_messages(with_categories=True) %}
{% if messages %}
@ -43,5 +55,15 @@
setTimeout(() => hideElement(alert), 3000);
}
</script>
<script>
function selectStudies() {
let uva_id = document.getElementById('uva_id').value;
if (uva_id == 'all') {
window.location.href = '/'
} else {
window.location.href = "/user_studies/" + uva_id;
}
}
</script>
</body>
</html>

View File

@ -146,7 +146,21 @@ class Sanity_Check_Test(unittest.TestCase):
uids.append(user['uid'])
self.assertIn('dhf8r', uids)
def test_user_studies(self):
studies1 = self.app.get(f'/user_studies')
self.assertEqual('308 PERMANENT REDIRECT', studies1.status)
for header in studies1.headers:
if header[0] == 'Location':
self.assertEqual('http://localhost/user_studies/', header[1])
studies2 = self.app.get(f'/user_studies/')
self.assertEqual('302 FOUND', studies2.status)
for header in studies2.headers:
if header[0] == 'Location':
self.assertEqual('http://localhost/', header[1])
def test_long_study_name(self):
title = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla egestas quam id ullamcorper facilisis. Praesent ultricies urna malesuada velit ultricies efficitur. Nam eu eleifend libero. Mauris ac erat augue. Curabitur ac fringilla tellus. Morbi sem quam, consectetur sit amet eros non, semper congue metus. Sed sollicitudin augue eu justo fermentum volutpat at sit amet metus. Vestibulum hendrerit pharetra ante. Sed porttitor diam nibh, quis elementum est placerat sit amet. Phasellus magna libero, porta quis euismod et, commodo eu nisl. Quisque consectetur sagittis interdum. Nullam congue consectetur elementum. In hac habitasse platea dictumst. Duis placerat iaculis odio, ac faucibus felis vehicula nec. Praesent cursus id turpis ac maximus.'
study = self.add_study(title=title)
self.assertEqual(title, study.TITLE)