Commit graph

45 commits

Author SHA1 Message Date
Paul Kevan c880f28a63
Update contributor.php (#266)
* Update contributor.php

Store wporg user id as post meta to enable easier reporting for contributors.
2024-07-03 10:58:19 +01:00
Ian Dunn ed490dfc26 Apply coding standards 2023-11-06 10:13:10 -08:00
Ian Dunn b86470575f Contributors: Add CSV report of inactive contributors 2023-11-06 10:13:10 -08:00
Ian Dunn 2880d80e12
Contributors: Don't send inactivity emails to banned users.
Fixes #221
2023-02-28 16:36:49 -08:00
Ian Dunn 0e88966246
Add code coverage report 2022-09-13 11:53:26 -07:00
Ian Dunn 0964167f12 Apply coding standards 2022-08-29 16:21:06 -07:00
Ian Dunn 32b738d95f Contributors: Add user data for users that don't have expected meta.
Some users don't have any of the expected meta fields. The previous commit caused them to be skipped, resulting in distorted stats.
2022-08-29 16:21:06 -07:00
Ian Dunn c9783a17f5 Contributors: Move user_registered check to pruning function.
That allows `add_user_data_to_xprofile()` to be reused in other contexts.

`user_login` was removed from the `SELECT` because it wasn't being used.
2022-08-29 16:21:06 -07:00
Ian Dunn cd36902bb5 Contributors: Standardize on team_names field for consistency. 2022-08-29 16:21:06 -07:00
Ian Dunn ccad917c00 Contributors: Modularize activity detection for reuse. 2022-08-29 16:21:06 -07:00
Ian Dunn 8c28881812
Contributors: Apply ?? before array cast, to avoid PHP notice.
Previously the `$user->team_names` would be cast to an array before the null coalescing operator executed. If the `team_names` field wasn't set in the database, PHP would throw an error before trying to apply the null coalescing operator.
2022-08-15 10:54:11 -07:00
Ian Dunn a8ce296de5 Add cron job to send emails to inactive contributors. 2022-08-10 10:25:29 -07:00
Ian Dunn 9e4d322b3d
Stats: Add self-sponsored hours and contributor counts.
Fixes #124

Some variables/keys to clarify their names, or makes them less verbose. See #198, #200.
2022-08-03 15:53:34 -07:00
Ian Dunn bb0216adc6
Replace deprecated SANITIZE_STRING filter with UNSAFE_RAW.
`FILTER_UNSAFE_RAW` doesn't strip HTML tags like `FILTER_SANITIZE_STRING` did, but some of these are being run through `sanitize_text_field` as well, and the others aren't being output or saved to the database.

See https://stackoverflow.com/a/69207369/450127
2022-07-19 11:03:35 -07:00
Ian Dunn c6d7bbb7c1
Contributors: Reset profile hours when pledge deactivated.
See https://github.com/WordPress/five-for-the-future/issues/169
2022-05-02 14:22:26 -07:00
Ian Dunn 834c62c0d0
Plugin: Minor cleanup 2022-04-28 09:34:14 -07:00
Corey McKrill a545168ef2
Contributors: Prevent adding to a pledge twice.
This syncs `r17275-dotorg` to the canonical Git repo.
2022-03-18 12:42:05 -07:00
Ian Dunn 13a417ce8e
Apply coding standards. 2020-11-13 12:24:03 -08:00
Kelly Dwan 183f7a95bc
Manage Pledge: Notify removed contributors (#109)
If a contributor is removed from a pledge, they should be notified of the change. This will send an email to any confirmed contributors letting them know.
2019-12-16 17:33:43 -05:00
Ian Dunn fda5842e86
Regularly store stats snapshots to track historical trends.
Fixes #37
2019-12-06 08:03:54 -08:00
Kelly Dwan 544fe39199 Manage Pledge: Enable pledge admins to edit contributors from manage form (#108)
* Add contributor management to manage form
* Check `pledge_id` to prevent returning all contributors
* Return a plain text error string – this is used in an alert box, so it can't contain HTML
* Hide confirmation when pledge is a draft
* Only enqueue script if the user is authorized
2019-11-26 13:08:42 -05:00
Kelly Dwan b898dc23f3 Pledges: Move parse_contributors function 2019-11-26 13:08:42 -05:00
Jb Audras 0754ae0b28 Use a unique text-domain, wporg-5ftf (#110)
* Use a unique text-domain, wporg-5ftf

* Fix plugin i18n strings

* Remove unwanted text-domains from WPCS checks and fix missed old text-domains

* Remove type=array from phpcs

* Re-add type=array

* Small WPCS fix

* WPCS: replace  var with
2019-11-23 13:24:37 -05:00
Kelly Dwan 82192eea4c
Manage a Pledge: Enable adding/removing contributors from wp-admin. (#99)
This updates the display of contributors into a table view, and adds the ability to add and remove contributors to existing pledges.

The display has been refactored to use JS templates & JSON contributor data– the data is output onto the page when loaded from the server, and rendered when the page finishes loading. Adding & removing contributors now submits to an admin-ajax.php endpoint, which, if successful, return the new list of contributors. This ensures the display is always up to date.

Fixes #3
2019-11-20 11:01:00 -05:00
Kelly Dwan 42d44f7dc9
Plugin: Fix all phpcs errors
This includes autofixes, along with some manual fixes; mostly syntax-related. Some `phpcs:ignore` comments were added for overzealous rules that don't apply.
2019-11-14 13:48:17 -05:00
Ian Dunn 521ce58de7
Contributors: Return default array when posts empty to avoid notices.
Previously there were `undefined index` notices on `wp-admin/edit.php?post_type=5ftf_pledge` when a pledge had `0` posts in either status.
2019-11-07 16:14:27 -08:00
Ian Dunn ffebacb42a
My Pledges: Rename status variable for clarity. 2019-11-07 10:08:18 -08:00
Caleb Burks 7cbe722202
My Pledges: Only trigger status changes when needed. 2019-11-07 10:08:18 -08:00
Caleb Burks 1023fdeb55
My Pledges: Verify current user is authorized to edit contribution.
Closes #90
2019-11-07 10:08:06 -08:00
Caleb Burks 8e3ba2db96
My Pledges: Append ID to nonce action to make it more unique.
Fixes #87
2019-11-06 09:02:29 -08:00
Caleb Burks 8230963ea4
My Pledges: Ensure the submitted contributor_post_id is valid.
See #87
2019-11-06 08:58:50 -08:00
Caleb Burks c47679a5cc
My Pledges: Return early if contributor_post_id is missing.
`process_my_pledges_form()` is actually called on page load in `render_my_pledges()`.

So to prevent the unnecessary get_post() queries, let’s just return early if the form wasn’t really submitted.

See #87
2019-11-06 08:58:07 -08:00
Caleb Burks 1576a18d24 Disallow create_posts for the Pledges and Contributors (#78)
Pledges and contributors should not be creatable from the normal WP UI "Add New".

Fixes #77 
Props icaleb
2019-11-03 14:21:16 -06:00
Ian Dunn fe437cc880
My Pledges: Hide menu item when logged out. 2019-11-01 15:37:49 -05:00
Kelly Dwan 0b26fad482
My Pledges: Update styles and format to match design
- Add a single-pledge view so we can separate out the pending from published
- Update layout and styles of my pledges list
- Adds link and danger button styles
2019-10-30 13:24:48 -05:00
Corey McKrill 83125dd8b2
Update pledge UI and email copy (#64)
Fixes #61
2019-10-29 16:37:14 -07:00
Ian Dunn 858d70b045
My Pledges: Mark up page with live data.
See #56
2019-10-29 12:54:13 -07:00
Corey McKrill 5c5ae83287
Plugin: Add a system for logging events related to pledges and contributors (#54)
Uses action hooks to capture relevant events as log entries on a per-pledge basis. This provides a running history of a pledge and can be used as an audit log if questions arise about changes to a pledge or there are weird bugs.

Fixes #39
2019-10-29 12:46:13 -07:00
Ian Dunn 67958d9a1a
Contributors: Create functionality for My Pledges page.
This don't add the styling yet, just the functionality.

See #56
Fixes #51
Fixes #30
2019-10-28 12:08:21 -07:00
Corey McKrill dbdcf26bd9 Theme: Single pledge view (#43)
* Theme: Create template part for single pledge

* Plugin: Add functions for handling xprofile data

* Plugin: Add helper function for getting contributor user objects

* Theme: Display aggregated contributor data on single pledge view

* Theme: Add functions, markup, and styles to show team badges

* Theme: Add badge for Test team

* Theme: Add tentative URL for report a pledge link

* Theme: Add support for post thumbnails

* Theme: Add org logo to single pledge view

* Theme: Update `$content_width` to 960

This matches the width of the content in the global header and
the About page.

* Move pledge template to a file used by the template heirarchy

* Clean up some PHPCS errors

* Move pledge structure out to just the list items

* Create file for single pledge styles

* style badge grid into a grid.

* Add a custom image size for the logo

* Update styles

* Un-hide pledges with no confirmed contributors

* Fix content width
2019-10-28 13:38:49 -04:00
Ian Dunn c10699f97c
Contributors: Add ability to resend confirmation email.
Fixes: #50.
2019-10-26 10:59:06 -07:00
Corey McKrill 838a490776
Pledge: Count number of confirmed contributors instead of using arbitrary number input (#52)
This will be more accurate and avoid confusion that could arise if the self-reported "Number of Employees Being Sponsored" didn't match the number of confirmed contributors listed on the pledge.

Having that counted number stored in post meta is still useful, though, so this also adds/updates that number for a pledge whenever a Contributor post changes its status.

Fixes #48
2019-10-25 13:39:13 -07:00
Kelly Dwan f47024efda
Contributors: Check if a pledge exists before displaying the pledge name
If somehow a pledge is deleted, the contributors listing in wp-admin shows an error trying to display the linked pledge.
2019-10-25 16:21:33 -04:00
Ian Dunn f888fd85c8
Apply coding standards. 2019-10-24 08:12:55 -07:00
Corey McKrill 266ba447b4
Add a Contributor custom post type (#42)
Contributors associated with pledges have a state: they can be confirmed or unconfirmed. They also have some important meta data, namely when they were confirmed. Thus, managing contributor data for pledges is more robust if we treat them as their own post type instead of as a multidimensional array of post meta data.

This also reorganizes some of the functions related to pledges so that things are more consistent between the pledge CPT and the contributior CPT.

Fixes #11
2019-10-21 15:43:20 -07:00