A new contact page template has been created, is linked in the default theme footer The default contact page includes links to submit a bug, and contact the pagure lists Errors now include a link to the contact page to help users get help
Link to the relevant issue: https://pagure.io/pagure/issue/3372
Aren't we on Bootstrap 4?
Please add this to all themes. It shouldn't be too difficult to do.
contact an administrator
laces? Do you mean places?
laces
places
@ngompa Do you mean add the "Contact" link to the footer of all themes? Pagureio theme already has a link to submit an issue, so that's slightly redundant, but that's probably okay. I wasn't sure what the use cases for the other themes were.
And yes, I mean "places!" good catch :)
Can you please elaborate on "Aren't we on Bootstrap 4?" ?
rebased onto b37d06017b7c90c3bf3902ee4ee53470ef092d89
Just updated the PR to fix the typo and include the footer link on all themes!
Edit: plus updated again to fix "contact an administrator" after realizing what you were commenting on :)
rebased onto 629789fbec70139b8a0b2208502266c7aef0ef48
rebased onto 6b562955fb1b0b98ce5bb731666b2b940273d28d
rebased onto 46f559917348289c961dace2ba735bd3af5d9537
We should add this to the list of blacklisted project names, or move it to something like /-contact since we do not allow project to start with a -
/-contact
-
I'd use the doc subfolder for this or create a dedicated macro so that customizing this page in themes in easy
doc
I'd prefer if this page was something like /help, since I would like to use it to provide not just contact information, but also some basic info about the instance I'm operating.
/help
rebased onto e9501bd18d685efff9c3c7de402c3523ea7f8571
@pingou - I added "contact" to the blacklist!
Do you mean move contact.md into the doc folder?
Do others agree with @bkabrda? I originally had this as an "about" page, actually, which should show information like you suggested. But that seemed outside of the scope of this RFE so I dialed it back to simply "contact". I like "help", though!
Also - I see the Jenkins build is failing, but I'm not really sure how to resolve that. Can anyone provide some guidance there?
https://ci.centos.org/job/pagure-pr/1350/console shows at the bottom:
01:45:16 Failed tests: 01:45:16 FAILED test: py-test_style
You can then see the output of all tests in: https://ci.centos.org/job/pagure-pr/1350/ > build artifacts https://ci.centos.org/job/pagure-pr/1350/artifact/ > pagure > results-py2 In there, look for this test: py-test_style: https://ci.centos.org/job/pagure-pr/1350/artifact/pagure/results-py2/py-test_style/view/
py-test_style
Which makes me realize there is a bug, this test runs in py3, so it should be in the results-py3 folder :s
results-py3
I think help would work.
What do you think about building this into the theming itself?
Thank you for all your help, Pingou!! I think I know how to fix that test fail now :)
By building it into the theme, do you mean essentially rather than having one .md file, each theme template will have a macro where the /contact (or /help) page is configured? I think this is a good idea and would make it easier for instances to find where to edit this information!
rebased onto 9c032c3d855cb001926b80bf14529fd9fdd9fe69
oops, is that me who broke this?
1 new commit added
moved contact.md to new about_page theme macro
@pingou Just pushed a new commit to this branch which implements your advice and rather than a .md file uses a theme macro. I think will be a lot more maintainable for instance admins and was a good idea! Let me know how that looks to you :grin:
@pingou @marykatefain It would actually be nice if we had a proper about page that listed Pagure and version, the software copyright info, references to documentation, and info for contacting the admin if there's a problem.
2 new commits added
Contact information added to Errors, fixes #3372
@ngompa yeah I wasn't sure how specific to make it since I don't know how much variation between Instances there is... Right now It says:
This is an instance of Pagure, a decentralized git forge. If you experience a bug or security concern, please submit an issue. You may also post questions to the Pagure Development list by emailing: pagure-devel@lists.pagure.io or subscribe to the list. Subscribe to announcements about Pagure.
This is an instance of Pagure, a decentralized git forge.
If you experience a bug or security concern, please submit an issue.
You may also post questions to the Pagure Development list by emailing: pagure-devel@lists.pagure.io or subscribe to the list.
Subscribe to announcements about Pagure.
I'm definitely open to adding more content about the docs, licence, version, etc. Is there another way to contact admins besides submitting an issue or the email list? I suppose I could link to the IRC channel.
Do you think this extra content would be worthwhile on all themes? Or just the pagureio theme?
Well, I would suggest that admin contact link is probably going to reference a variable configured in pagure.cfg to give an email address or contact URL for the instance admin, since that's per-instance.
pagure.cfg
The rest of it is good, and it should be in all themes.
Thanks @ngompa - I will add the admin email to the cfg file. It is currently applied to all themes!
I'd just call flask.Markup which saves the import at the top of the file
flask.Markup
These two are not used anywhere in the new code apparently
I am honestly unsure how decentralized pagure is :)
decentralized
I have not run the code locally so it may be a silly question, but is all this JS code used?
removed unused code, changed about language, allowed admin_email to be set as a confguration
@pingou - Thanks for the review! I went ahead and fixed those.
Just pushed a commit that also makes the admin email configurable. :)
This message is wrong.
We should default to root@localhost.localdomain, as that's local-friendly and won't encourage random communication to pagure mailing list.
root@localhost.localdomain
3 new commits added
Thanks @ngompa! Just incorporated those changes.
That's not the default :)
Is this needed?
Are these used?
remove estraneous code, fix default cfg docs
@pingou a couple of those lines were needed, but not all. I took out the extraneous code and fixed the cfg docs!
I'm still having trouble understanding the Jenkins output, though... I'm not sure how to get it to pass. (And I can't get the tests to work locally...)
@marykatefain the tests work for me when I vagrant up, vagrant ssh and switch to the python3 virtualenv: workon python3-pagure (cause by default it goes to python2-pagure). Then run the tests: ./runtests.py run. Does this work for you?
vagrant up
vagrant ssh
workon python3-pagure
./runtests.py run
@lenkaseg I ended up having to use docker-compose to get things running locally, vagrant is still a mess for me :(
I can actually get the tests to run... but then ALL of them fail. Which seems impossible and insane? There's no way this PR broke every single part of the site hahah. It seems to be an issue with python2 vs 3?
mk@babyshark:~/Projects/pagure$ docker-compose -f dev/docker-compose.yml exec web python3 runtests.py rerun Pre-flight checks passed Loading failed tests Using 3 processes Start timing /usr/local/bin/nosetests /usr/bin/nosetests-2 which: no nosetests-3 in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin) No nosetests-3 found, removing python 3 Starting the workers Test suite FAILED: py2-test_pagure_flask_ui_app_give_project Test suite FAILED: py2-test_pagure_flask_api_project Test suite FAILED: py2-test_pagure_flask_internal Test suite FAILED: py2-test_fnmatch Test suite FAILED: py2-test_pagure_exclude_group_index Test suite FAILED: py2-test_pagure_flask_api_pr_flag Test suite FAILED: py2-test_pagure_flask_ui_plugins_default_hook Test suite FAILED: py2-test_pagure_flask_ui_groups Test suite FAILED: py2-test_pagure_flask_ui_plugins_pagure_hook Test suite FAILED: py2-test_pagure_flask_ui_plugins_pagure_ci Test suite FAILED: py2-test_pagure_flask_ui_issues_acl_checks Test suite FAILED: py2-test_pagure_flask_ui_plugins_pagure_request_hook Test suite FAILED: py2-test_pagure_lib_model_delete_project Test suite FAILED: py2-test_style Test suite FAILED: py2-test_pagure_flask_ui_star_project Test suite FAILED: py2-test_pagure_flask_api_issue_create Test suite FAILED: py2-test_pagure_flask_api_project_update_watch Test suite FAILED: py2-test_pagure_flask_api Test suite FAILED: py2-test_pagure_flask_ui_priorities Test suite FAILED: py2-test_pagure_flask_form Test suite FAILED: py2-test_pagure_flask_ui_app_browse Test suite FAILED: py2-test_pagure_lib_gitolite_config Test suite FAILED: py2-test_pagure_lib Test suite FAILED: py2-test_pagure_flask_ui_plugins_rtd_hook Test suite FAILED: py2-test_pfmarkdown Test suite FAILED: py2-test_pagure_flask_api_fork Test suite FAILED: py2-test_pagure_lib_watch_list Test suite FAILED: py2-test_pagure_flask_ui_pr_no_sources Test suite FAILED: py2-test_pagure_lib_task_mirror Test suite FAILED: py2-test_pagure_flask_ui_repo_view_file Test suite FAILED: py2-test_pagure_flask_api_issue_comment Test suite FAILED: py2-test_pagure_lib_notify Test suite FAILED: py2-test_pagure_flask_ui_slash_branch_name Test suite FAILED: py2-test_pagure_flask_api_issue Test suite FAILED: py2-test_pagure_flask_ui_app Test suite FAILED: py2-test_pagure_lib_mimetype Test suite FAILED: py2-test_pagure_flask_ui_plugins_fedmsg Test suite FAILED: py2-test_pagure_lib_model Test suite FAILED: py2-test_pagure_lib_git_auth Test suite FAILED: py2-test_pagure_flask_ui_plugins_mail Test suite FAILED: py2-test_pagure_flask_ui_repo Test suite FAILED: py2-test_pagure_flask_ui_issues_read_only Test suite FAILED: py2-test_pagure_flask_ui_login Test suite FAILED: py2-test_pagure_flask_ui_quick_reply Test suite FAILED: py2-test_pagure_flask_ui_no_master_branch Test suite FAILED: py2-test_stream_server Test suite FAILED: py2-test_pagure_flask_ui_plugins_noff Test suite FAILED: py2-test_pagure_flask_api_group Test suite FAILED: py2-test_pagure_flask_ui_plugins_unsigned Test suite FAILED: py2-test_pagure_flask_ui_issues_private Test suite FAILED: py2-test_pagure_flask_ui_plugins_pagure_no_new_branch Test suite FAILED: py2-test_pagure_flask_api_auth Test suite FAILED: py2-test_pagure_flask_dump_load_ticket Test suite FAILED: py2-test_pagure_lib_login Test suite FAILED: py2-test_pagure_flask_api_user Test suite FAILED: py2-test_pagure_flask_ui_app_userdash Test suite FAILED: py2-test_pagure_flask_ui_clone Test suite FAILED: py2-test_pagure_lib_add_user_to_project Test suite FAILED: py2-test_pagure_lib_drop_issue Test suite FAILED: py2-test_pagure_lib_task_services Test suite FAILED: py2-test_pagure_lib_git Test suite FAILED: py2-test_pagure_lib_notify_email Test suite FAILED: py2-test_pagure_flask_ui_roadmap Test suite FAILED: py2-test_pagure_flask_ui_issues_templates Test suite FAILED: py2-test_pagure_flask_ui_plugins_mirror Test suite FAILED: py2-test_pagure_repospanner Test suite FAILED: py2-test_pagure_flask_ui_repo_flag_commit Test suite FAILED: py2-test_pagure_flask_ui_app_index Test suite FAILED: py2-test_pagure_flask_ui_repo_milestones Test suite FAILED: py2-test_pagure_flask_api_issue_change_status Test suite FAILED: py2-test_pagure_flask_ui_repo_slash_name Test suite FAILED: py2-test_pagure_flask_ui_issues Test suite FAILED: py2-test_pagure_flask_ui_plugins Test suite FAILED: py2-test_pagure_lib_git_diff_pr Test suite FAILED: py2-test_pagure_flask_ui_old_commit Test suite FAILED: py2-test_pagure_lib_link Test suite FAILED: py2-test_alembic Test suite FAILED: py2-test_pagure_flask_api_ui_private_repo Test suite FAILED: py2-test_pagure_flask_docs Test suite FAILED: py2-test_pagure_admin Test suite FAILED: py2-test_pagure_flask_ui_plugins_pagure_ticket_hook Test suite FAILED: py2-test_pagure_flask_util Test suite FAILED: py2-test_pagure_flask_api_issue_custom_fields Test suite FAILED: py2-test_tasks Test suite FAILED: py2-test_pagure_lib_encoding_utils Test suite FAILED: py2-test_pagure_lib_star_project Test suite FAILED: py2-test_pagure_flask_ui_plugins_irc Test suite FAILED: py2-test_pagure_flask Test suite FAILED: py2-test_pagure_lib_git_get_tags_objects Test suite FAILED: py2-test_pagure_flask_ui_remote_pr Test suite FAILED: py2-test_pagure_flask_ui_fork Test suite FAILED: py2-test_pagure_flask_ui_repo_delete_project Test suite FAILED: py2-test_pagure_flask_ui_issue_pr_link Running 0 suites: 0 remaining, 93 failed All work done Failed tests: FAILED test: py2-test_pagure_flask_api_project FAILED test: py2-test_pagure_flask_ui_app_give_project FAILED test: py2-test_pagure_flask_internal FAILED test: py2-test_pagure_exclude_group_index FAILED test: py2-test_fnmatch FAILED test: py2-test_pagure_flask_api_pr_flag FAILED test: py2-test_pagure_flask_ui_groups FAILED test: py2-test_pagure_flask_ui_plugins_default_hook FAILED test: py2-test_pagure_flask_ui_plugins_pagure_hook FAILED test: py2-test_pagure_flask_ui_plugins_pagure_ci FAILED test: py2-test_pagure_flask_ui_issues_acl_checks FAILED test: py2-test_pagure_flask_ui_plugins_pagure_request_hook FAILED test: py2-test_pagure_lib_model_delete_project FAILED test: py2-test_style FAILED test: py2-test_pagure_flask_ui_star_project FAILED test: py2-test_pagure_flask_api_issue_create FAILED test: py2-test_pagure_flask_api FAILED test: py2-test_pagure_flask_api_project_update_watch FAILED test: py2-test_pagure_flask_form FAILED test: py2-test_pagure_flask_ui_priorities FAILED test: py2-test_pagure_flask_ui_app_browse FAILED test: py2-test_pagure_lib FAILED test: py2-test_pagure_flask_ui_plugins_rtd_hook FAILED test: py2-test_pagure_lib_gitolite_config FAILED test: py2-test_pagure_flask_api_fork FAILED test: py2-test_pagure_lib_watch_list FAILED test: py2-test_pfmarkdown FAILED test: py2-test_pagure_flask_ui_pr_no_sources FAILED test: py2-test_pagure_lib_task_mirror FAILED test: py2-test_pagure_flask_ui_repo_view_file FAILED test: py2-test_pagure_flask_api_issue_comment FAILED test: py2-test_pagure_lib_notify FAILED test: py2-test_pagure_flask_ui_slash_branch_name FAILED test: py2-test_pagure_flask_ui_app FAILED test: py2-test_pagure_lib_mimetype FAILED test: py2-test_pagure_flask_api_issue FAILED test: py2-test_pagure_flask_ui_plugins_fedmsg FAILED test: py2-test_pagure_lib_git_auth FAILED test: py2-test_pagure_lib_model FAILED test: py2-test_pagure_flask_ui_plugins_mail FAILED test: py2-test_pagure_flask_ui_repo FAILED test: py2-test_pagure_flask_ui_issues_read_only FAILED test: py2-test_pagure_flask_ui_login FAILED test: py2-test_pagure_flask_ui_quick_reply FAILED test: py2-test_pagure_flask_ui_no_master_branch FAILED test: py2-test_pagure_flask_ui_plugins_noff FAILED test: py2-test_stream_server FAILED test: py2-test_pagure_flask_api_group FAILED test: py2-test_pagure_flask_ui_plugins_unsigned FAILED test: py2-test_pagure_flask_ui_issues_private FAILED test: py2-test_pagure_flask_ui_plugins_pagure_no_new_branch FAILED test: py2-test_pagure_flask_api_auth FAILED test: py2-test_pagure_flask_dump_load_ticket FAILED test: py2-test_pagure_lib_login FAILED test: py2-test_pagure_flask_api_user FAILED test: py2-test_pagure_flask_ui_app_userdash FAILED test: py2-test_pagure_lib_add_user_to_project FAILED test: py2-test_pagure_flask_ui_clone FAILED test: py2-test_pagure_lib_drop_issue FAILED test: py2-test_pagure_lib_task_services FAILED test: py2-test_pagure_lib_git FAILED test: py2-test_pagure_lib_notify_email FAILED test: py2-test_pagure_flask_ui_roadmap FAILED test: py2-test_pagure_flask_ui_issues_templates FAILED test: py2-test_pagure_flask_ui_plugins_mirror FAILED test: py2-test_pagure_flask_ui_repo_flag_commit FAILED test: py2-test_pagure_repospanner FAILED test: py2-test_pagure_flask_ui_app_index FAILED test: py2-test_pagure_flask_ui_repo_milestones FAILED test: py2-test_pagure_flask_api_issue_change_status FAILED test: py2-test_pagure_flask_ui_repo_slash_name FAILED test: py2-test_pagure_flask_ui_plugins FAILED test: py2-test_pagure_flask_ui_issues FAILED test: py2-test_pagure_lib_git_diff_pr FAILED test: py2-test_pagure_lib_link FAILED test: py2-test_pagure_flask_ui_old_commit FAILED test: py2-test_alembic FAILED test: py2-test_pagure_flask_api_ui_private_repo FAILED test: py2-test_pagure_flask_docs FAILED test: py2-test_pagure_flask_ui_plugins_pagure_ticket_hook FAILED test: py2-test_pagure_admin FAILED test: py2-test_pagure_flask_util FAILED test: py2-test_tasks FAILED test: py2-test_pagure_flask_api_issue_custom_fields FAILED test: py2-test_pagure_lib_encoding_utils FAILED test: py2-test_pagure_lib_star_project FAILED test: py2-test_pagure_flask_ui_plugins_irc FAILED test: py2-test_pagure_flask FAILED test: py2-test_pagure_lib_git_get_tags_objects FAILED test: py2-test_pagure_flask_ui_remote_pr FAILED test: py2-test_pagure_flask_ui_fork FAILED test: py2-test_pagure_flask_ui_repo_delete_project FAILED test: py2-test_pagure_flask_ui_issue_pr_link Ran 93 tests in 154.091861 seconds, of which 93 failed
Try rebasing your fork on the top of master (main project). Feel free to ping us on IRC (#pagure on freenode) if you need help, either with git or with the tests in general :)
I'm running the tests locally, if they pass, I'll merge this PR manually and likely open a new on to tweak a bit the default content of this new page (and add basic test for it while at it :)).
Thanks for your help, I'll let you know the outcome of the test run :)
Commit 770786b9 fixes this pull-request
Pull-Request has been merged by pingou
Commit a169181b fixes this pull-request
Thank you, pingou! Sorry I did not have a chance to finish this up myself, I was hoping to get to it this weekend :)
No worries it's all good :)
A new contact page template has been created, is linked in the default theme footer
The default contact page includes links to submit a bug, and contact the pagure lists
Errors now include a link to the contact page to help users get help