Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add Afform Reports listing #31458

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

ufundo
Copy link
Contributor

@ufundo ufundo commented Nov 11, 2024

Overview

Adds a placement tag to designate certain (search) afforms as "Afform Reports". Add a listing for end users to open these reports.

Before

The only easy listing of Afforms is in the Form Builder GUI - aimed at form editors rather than users.

After

Afforms can be tagged as "Reports" using the Expose To option in Form Builder:
image

They are then shown in a simple listing for end users:

image

The listing is included in the Reports menu:
image

Technical Details

I've made this in a separate core extension called afform_reports.

I didn't include in the afform directory because it seems quite separate functionality - more akin to Admin UI or Search UI.

I toyed with including in civi_report - however I thought this may be useful for folks instead of standard CiviReport. I did add under the reports top menu for now.

cc @kcristiano is this what you had in mind?

Copy link

civibot bot commented Nov 11, 2024

🤖 Thank you for contributing to CiviCRM! ❤️ We will need to test and review this PR. 👷

Introduction for new contributors...
  • If this is your first PR, an admin will greenlight automated testing with the command ok to test or add to whitelist.
  • A series of tests will automatically run. You can see the results at the bottom of this page (if there are any problems, it will include a link to see what went wrong).
  • A demo site will be built where anyone can try out a version of CiviCRM that includes your changes.
  • If this process needs to be repeated, an admin will issue the command test this please to rerun tests and build a new demo site.
  • Before this PR can be merged, it needs to be reviewed. Please keep in mind that reviewers are volunteers, and their response time can vary from a few hours to a few weeks depending on their availability and their knowledge of this particular part of CiviCRM.
  • A great way to speed up this process is to "trade reviews" with someone - find an open PR that you feel able to review, and leave a comment like "I'm reviewing this now, could you please review mine?" (include a link to yours). You don't have to wait for a response to get started (and you don't have to stop at one!) the more you review, the faster this process goes for everyone 😄
  • To ensure that you are credited properly in the final release notes, please add yourself to contributor-key.yml
  • For more information about contributing, see CONTRIBUTING.md.
Quick links for reviewers...

➡️ Online demo of this PR 🔗

@civibot civibot bot added the master label Nov 11, 2024
@ufundo ufundo marked this pull request as ready for review November 11, 2024 21:36
@ufundo ufundo changed the title add Afform Report listing add Afform Reports listing Nov 11, 2024
@kcristiano
Copy link
Member

kcristiano commented Nov 12, 2024

Thanks @ufundo It looks like a good start. I am away this week but can test and detail out my results when I get back

@ufundo
Copy link
Contributor Author

ufundo commented Nov 22, 2024

Added filtering on the base_module (Extension) and afform description .

If there are other filters that should be possible to add, it's just a case of specifying the right input_type in the Afform getFields metadata here: ab7699c

@ufundo
Copy link
Contributor Author

ufundo commented Nov 22, 2024

I wanted to add an extension column to the listing. I can do it using the base_module key, but not the label for some reason.

@colemanw any idea why this doesn't work ufundo@25e97d0 ?

@colemanw
Copy link
Member

any idea why this doesn't work

No, it certainly looks like it should. The pseudoconstant is there:

'pseudoconstant' => ['callback' => ['CRM_Core_BAO_Managed', 'getBaseModules']],

The only other thing I can think of is that maybe the missing "suffixes" metadata is a problem? I didn't think it would be, but worth a shot to see if adding it helps:

--- a/ext/afform/core/Civi/Api4/Afform.php
+++ b/ext/afform/core/Civi/Api4/Afform.php
@@ -329,6 +329,7 @@ class Afform extends Generic\AbstractEntity {
           'description' => 'Name of extension which provides this form',
           'readonly' => TRUE,
           'pseudoconstant' => ['callback' => ['CRM_Core_BAO_Managed', 'getBaseModules']],
+          'suffixes' => ['name', 'label'],
         ];
         $fields[] = [
           'name' => 'search_displays',

@colemanw
Copy link
Member

Nitpick: The title "Afform Reports" in the menu seems a bit programmer-ey (we don't use the word "Afform" in user-facing text). What about "Report Forms"?

@kcristiano
Copy link
Member

Thanks for the work on this. In testing user created Search Forms have no base module and filtering on the primary Entity (contacts/participants/memberships etc) would be useful. As this list gets large we need a way for peoiple to find what they are looking for.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants