Background:

Our goal is to follow up with everyone who lets us know they've attended our services for the first time (child check-in, giving or a comment card). The follow-up needs to be done by the pastor over the region of the city in which the person lives ("District pastor").

We are using these three metrics to fill in the "First Visit" date.

We have created a "First followup assigned" custom person attribute, of type Boolean. True=Yes and False=No. The default is "No".

We have a dataview of people whose "First Visit" date is within a certain range, and whose "First followup assigned" is not equal to "Yes". (I can't do equal to no because even though default is set, blank doesn't resolve to no. Yet? I think I've seen or made a bug report on that).

I should mention at this point that, when defining the filters I select Value "Is not equal" to "Yes", but when that filter is collapsed, it reads "Value is not equal to True". No problem, but it may be important to this issue.

We have a custom workflow that we use to assign people to their district pastor. Part of that workflow updates the "First followup assigned" person attribute, setting the value to "Yes" so they disappear off of the dataview.

We have a report based on that dataview which gives a link to the person's profile (where the workflow can be triggered), and also displays the contact numbers, address and the district pastor they should be assigned to.

For the sake of keeping it simple, I'll say that we've duplicated all of this for the second visit as well. It's a little more nuanced than that, but that shouldn't matter for this issue.

We have a custom page using two instances of the "Dynamic report" block- one for the "First followups to be assigned" report, and one for the second. All of the filters are set to not show up as an option, so they should all be simply showing the report, as I understand it.

The issue:

This morning a staff member was going through the list and running the workflows, etc. Quite logically, when she got to a husband and wife who were both on the list, she assigned one and skipped the other. Going back to the page with both lists on it, she checked the box next to two spouses who did not get assigned and using "Bulk Update", set "First followup assigned" to "Yes" and saved. Those two individuals did not disappear from the list.

Here's where it gets weird.

I queried the database for the Attribute Values on "First followup Assigned" for those two individuals. The person whose attribute was updated by the workflow (who correctly disappeared from the list) has "Yes" as the attribute value. The person whose attribute was updated by Bulk Update (who has not disappeared from the list) has "True" as the attribute value.

I figured there was some kind of disconnect between "Yes" and "True", so I went in and edited the person attribute so that the True value was True, and the False value was False. Then I ran an UPDATE command to change the value of that AttributeId to "True" wherever it existed as "Yes". Then I went into the dataview and made sure the filter was set to, and saved with "not equal to True" instead of "Yes". Finally, I updated the workflow to set the value to "True" instead of "Yes".

When I checked the Dynamic Report block, it correctly got the new setting, but it did remind me that if I set that value to configurable, I can only choose between "True and "False" - no "Not equal to". At any rate, I set that filter back to non-configurable.

Inexplicably, the person who was incorrectly on the list before, still shows up on the list. Their spouse, whose attribute had been updated by the workflow, was still not on the list.

If I go to either the dataview or the report which feed the Dynamic Report block, neither of those individuals show up.

I have tried clearing Rock's cache, to no avail.

So the Dynamic Report block is showing people who don't show up on the dataview or the report.

I think a bug report is in order but honestly I don't even know where to start or what's actually a bug. It seems to me the "Bulk Updater" might be broken with Boolean attributes, since the workflow stored the value which got correctly filtered by the dataview, but the bulk updater (where you have to select from a list, unlike in the workflow) it translated to "True" and wasn't filtered out by the dataview. Or perhaps the bug is with the dataview filtering based on the value rather than the Boolean and I needed to originally set the workflow to update to "True" instead of "Yes".

And the dynamic report block seems to be having real issues, unless I simply don't understand what it's doing. I know I'm not using it "as intended" - that is, to provide dynamic filters, but instead I'm trying to just use it to display multiple reports on a single page by setting all of the filters to not display (and thus not be configurable or toggle-able).