From 2473efc1a796718145f3120df1dba8cb4dd88c91 Mon Sep 17 00:00:00 2001 From: Jakub Kadlčík Date: Dec 07 2015 11:33:54 +0000 Subject: [frontend] use copr_url macro to generate proper URLs for user/group projects --- diff --git a/frontend/coprs_frontend/coprs/templates/_helpers.html b/frontend/coprs_frontend/coprs/templates/_helpers.html index 4da9697..b810198 100644 --- a/frontend/coprs_frontend/coprs/templates/_helpers.html +++ b/frontend/coprs_frontend/coprs/templates/_helpers.html @@ -146,6 +146,25 @@ {% endmacro %} +{% macro copr_url(view, copr) %} + {# Examine given copr and generate proper URL for the `view` + + Values of `username/group_name` and `coprname` are autimatically passed as the first two URL parameters, + and therefore you should *not* pass them manually. + + Usage: + copr_url('coprs_ns.foo', copr) + copr_url('coprs_ns.foo', copr, arg1='bar', arg2='baz) + #} + + {% if not copr.is_a_group_project %} + {{ url_for(view, username=copr.owner.name, coprname=copr.name, **kwargs) }} + {% else %} + {% set group_view = view.split(".")[0] + ".group_" + view.split(".")[-1] %} + {{ url_for(group_view, group_name=copr.group.name, coprname=copr.name, **kwargs) }} + {% endif %} + +{% endmacro %} @@ -254,27 +273,19 @@ {% macro build_href(build) %} -{% if build.copr.is_a_group_project %} - {{ url_for('coprs_ns.group_copr_build', group_name=build.copr.group.name, coprname=build.copr.name, build_id=build.id) }} -{% else %} - {{ url_for("coprs_ns.copr_build", username = build.copr.owner.name, coprname = build.copr.name, build_id = build.id) }} -{% endif %} + {{ copr_url("coprs_ns.copr_build", build.copr, build_id=build.id) }} {% endmacro %} {% macro build_href_from_sql(build) %} -{% if build.group_name %} - {{ url_for('coprs_ns.group_copr_build', group_name=build.group_name, coprname=build.copr_name, build_id=build.id) }} -{% else %} - {{ url_for("coprs_ns.copr_build", username = build.owner_name, coprname = build.copr_name, build_id = build.id) }} -{% endif %} + {% if build.group_name %} + {{ url_for('coprs_ns.group_copr_build', group_name=build.group_name, coprname=build.copr_name, build_id=build.id) }} + {% else %} + {{ url_for("coprs_ns.copr_build", username = build.owner_name, coprname = build.copr_name, build_id = build.id) }} + {% endif %} {% endmacro %} {% macro package_href(package) %} -{% if package.copr.is_a_group_project %} - {{ url_for('coprs_ns.group_copr_package', group_name=package.copr.group.name, coprname=package.copr.name, package_name=package.name) }} -{% else %} - {{ url_for('coprs_ns.copr_package', username = package.copr.owner.name, coprname = package.copr.name, package_name=package.name) }} -{% endif %} + {{ copr_url('coprs_ns.copr_package', package.copr, package_name=package.name) }} {% endmacro %} {% macro fas_group_href(name) %} @@ -283,23 +294,10 @@ https://admin.fedoraproject.org/accounts/group/view/{{name}} {% macro repo_file_href(copr, repo) %} - {% if copr.is_a_group_project %} - {{url_for('coprs_ns.group_generate_repo_file', - group_name=copr.group.name, - coprname=copr.name, - name_release=repo.name_release, - repofile=repo.repo_file, - _external=True + {{copr_url('coprs_ns.generate_repo_file', + copr, + name_release=repo.name_release, + repofile=repo.repo_file, + _external=True )|fix_url_https_frontend}} - - {% else %} - {{url_for('coprs_ns.generate_repo_file', - username=copr.owner.name, - coprname=copr.name, - name_release=repo.name_release, - repofile=repo.repo_file, - _external=True - )|fix_url_https_frontend}} - {% endif %} - {% endmacro %} diff --git a/frontend/coprs_frontend/coprs/templates/coprs/_coprs_forms.html b/frontend/coprs_frontend/coprs/templates/coprs/_coprs_forms.html index 7ead87d..65556bb 100644 --- a/frontend/coprs_frontend/coprs/templates/coprs/_coprs_forms.html +++ b/frontend/coprs_frontend/coprs/templates/coprs/_coprs_forms.html @@ -1,4 +1,4 @@ -{% from "_helpers.html" import render_field, render_form_errors, copr_details_href %} +{% from "_helpers.html" import render_field, render_form_errors, copr_details_href, copr_url %} {% macro copr_form(form, view, copr = None, username = None, group = None) %} {# if using for updating, we need to pass name to url_for, but otherwise we need to pass nothing #} @@ -7,11 +7,7 @@
+ {% endif %} @@ -143,15 +129,7 @@ {% endmacro %} {% macro copr_delete_form(form, copr) %} - + {{ form.csrf_token }} {{ render_form_errors(form) }}
@@ -204,16 +182,7 @@ {% endmacro %} {% macro copr_legal_flag_form(form, copr) %} - + If you think that this project may be violating our policies, you can mark it for legal review. You can add an optional comment describing what you think is wrong here. diff --git a/frontend/coprs_frontend/coprs/templates/coprs/detail.html b/frontend/coprs_frontend/coprs/templates/coprs/detail.html index 44598a8..9dbd8b7 100644 --- a/frontend/coprs_frontend/coprs/templates/coprs/detail.html +++ b/frontend/coprs_frontend/coprs/templates/coprs/detail.html @@ -1,19 +1,5 @@ {% extends "layout.html" %} -{% from "_helpers.html" import copr_title, render_crumb %} - -{% if copr.is_a_group_project %} - {% set url_overview = url_for('coprs_ns.group_copr_detail', group_name = copr.group.name, coprname = copr.name) %} - {% set url_builds = url_for('coprs_ns.group_copr_builds', group_name = copr.group.name, coprname = copr.name) %} - {% set url_monitor = url_for('coprs_ns.group_copr_build_monitor', group_name = copr.group.name, coprname = copr.name) %} - {% set url_add_build = url_for('coprs_ns.group_copr_add_build', group_name = copr.group.name, coprname = copr.name) %} - {% set url_settings = url_for('coprs_ns.group_copr_edit', group_name = copr.group.name, coprname = copr.name) %} -{% else %} - {% set url_overview = url_for('coprs_ns.copr_detail', username = copr.owner.name, coprname = copr.name) %} - {% set url_builds = url_for('coprs_ns.copr_builds', username = copr.owner.name, coprname = copr.name) %} - {% set url_monitor = url_for('coprs_ns.copr_build_monitor', username = copr.owner.name, coprname = copr.name) %} - {% set url_add_build = url_for('coprs_ns.copr_add_build', username = copr.owner.name, coprname = copr.name) %} - {% set url_settings = url_for('coprs_ns.copr_edit', username = copr.owner.name, coprname = copr.name) %} -{% endif %} +{% from "_helpers.html" import copr_title, copr_url, render_crumb %} {% block title %}{{ copr.owner.name }}/{{ copr.name }} Copr{% endblock %} {% block main_menu_projects %}active{% endblock %} @@ -23,17 +9,11 @@
{% endblock %} diff --git a/frontend/coprs_frontend/coprs/templates/coprs/detail/edit_chroot.html b/frontend/coprs_frontend/coprs/templates/coprs/detail/edit_chroot.html index 13eae78..1334293 100644 --- a/frontend/coprs_frontend/coprs/templates/coprs/detail/edit_chroot.html +++ b/frontend/coprs_frontend/coprs/templates/coprs/detail/edit_chroot.html @@ -1,13 +1,5 @@ {% extends "coprs/detail.html" %} -{% from "_helpers.html" import render_field %} - -{% if copr.is_a_group_project %} - {% set url_chroot_edit = url_for('coprs_ns.group_chroot_update', group_name = copr.group.name, coprname = copr.name, chrootname = chroot.name) %} - {% set url_chroot_comps = url_for('coprs_ns.group_chroot_view_comps', group_name = copr.group.name, coprname = copr.name, chrootname = chroot.name) %} -{% else %} - {% set url_chroot_edit = url_for('coprs_ns.chroot_update', username = copr.owner.name, coprname = copr.name, chrootname = chroot.name) %} - {% set url_chroot_comps = url_for('coprs_ns.chroot_view_comps', username = copr.owner.name, coprname = copr.name, chrootname = chroot.name) %} -{% endif %} +{% from "_helpers.html" import render_field, copr_url %} {% block title %}Editing {{ copr.owner.name }}/{{ copr.name }}/{{ chroot.name }}{% endblock %} {%block project_breadcrumb%} @@ -24,7 +16,7 @@ {% block detail_body %}

Edit chroot '{{ chroot.name }}'

- @@ -45,7 +37,7 @@ {{ form.comps }} {% if chroot.comps_name %} Stored comps file: - + {{ chroot.comps_name}} diff --git a/frontend/coprs_frontend/coprs/templates/coprs/detail/monitor.html b/frontend/coprs_frontend/coprs/templates/coprs/detail/monitor.html index 939d55e..7eef1f9 100644 --- a/frontend/coprs_frontend/coprs/templates/coprs/detail/monitor.html +++ b/frontend/coprs_frontend/coprs/templates/coprs/detail/monitor.html @@ -1,27 +1,14 @@ {% extends "coprs/detail.html" %} +{% from "_helpers.html" import copr_url %} {% from "coprs/detail/_build_states.html" import build_states %} {% block title %}Monitor {{ copr.owner.name }}/{{ copr.name }}{% endblock %} {% set selected_tab = "monitor" %} - - -{% if copr.is_a_group_project %} - {% set monitor_view='coprs_ns.group_copr_build_monitor' %} -{% else %} - {% set monitor_view='coprs_ns.copr_build_monitor' %} -{% endif %} +{% set monitor_view='coprs_ns.copr_build_monitor' %} {%block project_breadcrumb %}
  • - - Monitor - + Monitor {% block project_breadcrumb_monitor %} {%endblock%}
  • @@ -40,26 +27,11 @@ {% block detail_body %} + {% block monitor_table %}{% endblock %} {{ build_states() }} diff --git a/frontend/coprs_frontend/coprs/templates/coprs/detail/overview.html b/frontend/coprs_frontend/coprs/templates/coprs/detail/overview.html index d71ef06..5490ed4 100644 --- a/frontend/coprs_frontend/coprs/templates/coprs/detail/overview.html +++ b/frontend/coprs_frontend/coprs/templates/coprs/detail/overview.html @@ -1,7 +1,7 @@ {% extends "coprs/detail.html" %} {% from "coprs/_coprs_forms.html" import copr_legal_flag_form with context %} -{% from "_helpers.html" import chroot_to_os_logo, copr_name, build_href, repo_file_href %} +{% from "_helpers.html" import chroot_to_os_logo, copr_name, copr_url, build_href, repo_file_href %} {% set selected_tab = "overview" %} @@ -162,15 +162,8 @@

    Other Actions

    diff --git a/frontend/coprs_frontend/coprs/templates/coprs/detail/settings.html b/frontend/coprs_frontend/coprs/templates/coprs/detail/settings.html index 5da1c96..423dadc 100644 --- a/frontend/coprs_frontend/coprs/templates/coprs/detail/settings.html +++ b/frontend/coprs_frontend/coprs/templates/coprs/detail/settings.html @@ -16,15 +16,9 @@ {% block detail_body %} {% block tab_content %}{% endblock %} diff --git a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_builds.py b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_builds.py index 51935e6..42555d1 100644 --- a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_builds.py +++ b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_builds.py @@ -41,7 +41,7 @@ def copr_build_redirect(build_id): copr = build.copr if copr.is_a_group_project: return flask.redirect(url_for( - "coprs_ns.group_copr_build", + "coprs_ns.copr_build", group_name=build.copr.group.name, coprname=build.copr.name, build_id=build_id)) @@ -115,7 +115,7 @@ def copr_package_edit(copr, package_name): @coprs_ns.route("/g///package//edit") @req_with_copr def group_copr_package_edit(copr, package_name): - return render_package_edit(copr, package_name, view="coprs_ns.group_copr_package_edit") + return render_package_edit(copr, package_name, view="coprs_ns.copr_package_edit") def render_package_edit(copr, package_name, view, form_tito=None, form_mock=None): @@ -147,7 +147,7 @@ def copr_package_edit_post(copr, package_name): @login_required @req_with_copr def group_package_edit_post(copr, package_name): - return process_package_edit(copr, package_name, view="coprs_ns.group_copr_package_edit") + return process_package_edit(copr, package_name, view="coprs_ns.copr_package_edit") def process_package_edit(copr, package_name, view): @@ -193,7 +193,7 @@ def copr_package_rebuild(copr, package_name): @coprs_ns.route("/g///package//rebuild") @req_with_copr def group_copr_package_rebuild(copr, package_name): - return render_copr_package_rebuild(copr, package_name, view="coprs_ns.group_copr_new_build") + return render_copr_package_rebuild(copr, package_name, view="coprs_ns.copr_new_build") def render_copr_package_rebuild(copr, package_name, view): @@ -226,7 +226,7 @@ def copr_add_build(copr, form=None): @req_with_copr def group_copr_add_build(copr, form=None): return render_add_build( - copr, form, view='coprs_ns.group_copr_new_build') + copr, form, view='coprs_ns.copr_new_build') def render_add_build(copr, form, view): if not form: @@ -247,7 +247,7 @@ def copr_add_build_upload(copr, form=None): @req_with_copr def group_copr_add_build_upload(copr, form=None): return render_add_build_upload( - copr, form, view='coprs_ns.group_copr_new_build_upload') + copr, form, view='coprs_ns.copr_new_build_upload') def render_add_build_upload(copr, form, view): if not form: @@ -268,7 +268,7 @@ def copr_add_build_tito(copr, form=None): @req_with_copr def group_copr_add_build_tito(copr, form=None): return render_add_build_tito( - copr, form, view='coprs_ns.group_copr_new_build_tito') + copr, form, view='coprs_ns.copr_new_build_tito') def render_add_build_tito(copr, form, view): if not form: @@ -318,7 +318,7 @@ def copr_new_build_tito(copr): @login_required @req_with_copr def group_copr_new_build_tito(copr): - view = 'coprs_ns.group_copr_new_build_tito' + view = 'coprs_ns.copr_new_build_tito' url_on_success = url_for("coprs_ns.group_copr_builds", group_name=copr.group.name, coprname=copr.name) return process_new_build_tito(copr, view, url_on_success) @@ -337,7 +337,7 @@ def copr_add_build_mock(copr, form=None): @req_with_copr def group_copr_add_build_mock(copr, form=None): return render_add_build_mock( - copr, form, view='coprs_ns.group_copr_new_build_mock') + copr, form, view='coprs_ns.copr_new_build_mock') def render_add_build_mock(copr, form, view): @@ -361,7 +361,7 @@ def copr_new_build_mock(copr): @login_required @req_with_copr def group_copr_new_build_mock(copr): - view = 'coprs_ns.group_copr_new_build_mock' + view = 'coprs_ns.copr_new_build_mock' url_on_success = url_for("coprs_ns.group_copr_builds", group_name=copr.group.name, coprname=copr.name) return process_new_build_mock(copr, view, url_on_success) @@ -435,7 +435,7 @@ def copr_new_build_upload(copr): @login_required @req_with_copr def group_copr_new_build_upload(copr): - view = 'coprs_ns.group_copr_new_build_upload' + view = 'coprs_ns.copr_new_build_upload' url_on_success = url_for("coprs_ns.group_copr_builds", group_name=copr.group.name, coprname=copr.name) return process_new_build_upload(copr, view, url_on_success) @@ -501,7 +501,7 @@ def copr_new_build(copr): def group_copr_new_build(copr): return process_new_build_url( copr, - "coprs_ns.group_copr_new_build", + "coprs_ns.copr_new_build", url_on_success=url_for("coprs_ns.group_copr_builds", group_name=copr.group.name, coprname=copr.name) ) @@ -557,8 +557,8 @@ def group_copr_new_build_rebuild(copr, build_id): view='coprs_ns.copr_new_build' url_on_success = url_for( - "coprs_ns.copr_builds", - username=copr.owner.username, coprname=copr.name) + "coprs_ns.group_copr_builds", + group_name=copr.group.name, coprname=copr.name) return process_rebuild(copr, build_id, view=view, url_on_success=url_on_success) diff --git a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py index b689aac..73680de 100644 --- a/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py +++ b/frontend/coprs_frontend/coprs/views/coprs_ns/coprs_general.py @@ -393,7 +393,7 @@ def render_copr_edit(copr, form, view): @login_required @req_with_copr def group_copr_edit(copr, form=None): - return render_copr_edit(copr, form, 'coprs_ns.group_copr_update') + return render_copr_edit(copr, form, 'coprs_ns.copr_update') @coprs_ns.route("///edit/")