Commit Graph

52 Commits

Author SHA1 Message Date
Ahtisham Shahid
73226f527b refactor: updated feature names as per convention 2021-05-11 18:20:17 +05:00
Ahtisham Shahid
e025c9bb64 refactor: sorted imports and misc cont renames 2021-05-11 18:20:17 +05:00
Ahtisham Shahid
1a43a4ca29 feat: Added new discussion providers and features
refactor: Fixed linter issues

refactor: Fixed styling issues

refactor: Code refactor and removed conflicts

refactor: Replaced feature dict with enum
2021-05-11 18:20:11 +05:00
Usama Sadiq
4f4be6538a BOM-2477: pylint warnings lint-amnesty (#27585) 2021-05-11 17:22:40 +05:00
stvn
8ed13dfbc3 tests: Add data tests for Discussions API
Closes stvstnfrd/openedx-meta#3
Closes CENG-58
Closes TNL-8230
2021-05-07 09:23:40 -07:00
stvn
165944c091 fix: Improve validation in Discussions API 2021-05-07 09:23:40 -07:00
stvn
718458115a docs: Remove completed TODO discussions item 2021-04-30 11:47:34 -07:00
stvn
e62705a365 feat: Add support to Discussions API for legacy cohort settings 2021-04-30 11:47:34 -07:00
stvn
eaeec735a9 feat: Add support for legacy discussions settings to API 2021-04-27 12:50:53 -07:00
stvn
4776ab1504 test: Add CourseFactory to discussions API tests 2021-04-27 12:37:29 -07:00
stvn
a99c95da64 feat: Hide lti_configuration from non-LTI discussions providers 2021-04-17 00:59:17 -07:00
stvn
33e499ea04 fix: Update discussions lti_configuration during provider_type change
Else, we risk updating it when we don't intend to, eg:
- changing from an LTI-backed provider (Piazza) to a non-LTI-backed
  provider (legacy)
  - the settings are no longer relevant
- changing from a non-LTI-backed provider (legacy) to an LTI-backed
  provider (Piazza)
  - the settings _are_ now relevant
2021-04-17 00:59:17 -07:00
stvn
c1742b7b66 feat: Add helper for discussions configuration to indicate feature support 2021-04-17 00:52:51 -07:00
stvn
fb2f8e6291 refactor: Remove superfluous dict comprehension 2021-04-17 00:48:01 -07:00
stvn
49594d92e6 fix: Grant course staff access to discussions API
to match expected behavior.
2021-04-16 11:23:44 -07:00
stvn
5284f397b4 refactor: Make discussions helper method more accessible
so we can use it elsewhere.
2021-04-16 11:23:44 -07:00
stvn
2fa36fb0cf refactor: Move StaffFactory helper to common/ 2021-04-14 07:26:39 -07:00
stvn
5dd8302d8b refactor: Move GlobalStaffFactory helper to common/ 2021-04-14 07:26:39 -07:00
stvn
eba78682c9 test: Test (incorrect) behavior of discussions API access
As implemented, course staff members will not have access to this API
endpoint. This will be addressed with pending work [1].

- [1] https://openedx.atlassian.net/browse/TNL-8231
2021-04-13 23:57:49 -07:00
stvn
4f0415f5cb test: Add tests for discussions API access
This checks for expected API access [1];
data integrity will be checked later [2].

This work exposes that the code currently does _not_ grant access to
_course_ staff, only _global_ staff. This is being addressed next [3].

Fix: TNL-8229 [1]

- [1] https://openedx.atlassian.net/browse/TNL-8229
- [2] https://openedx.atlassian.net/browse/TNL-8230
- [3] https://openedx.atlassian.net/browse/TNL-8231
2021-04-13 23:57:49 -07:00
stvn
fc39c3e073 fix: Stop using view_auth_classes helper in discussions API
as it conflicts with the manually-assigned `permission_classes`;
the decorator erases them.
2021-04-09 09:38:27 -07:00
stvn
67e045b5e0 refactor: Move discussions api LTI serialization logic 2021-04-08 09:31:48 -07:00
stvn
862ba01208 style: Add more typehints to discussions API 2021-04-07 21:05:33 -07:00
stvn
2053da2a9e fix: Update default provider returned by discussions API 2021-04-07 11:54:21 -07:00
stvn
d884967e2c refactor: Split kwargs out to individual lines
to make further addition/deletion cleaner.
2021-04-07 11:43:12 -07:00
stvn
6eabae0d9e feat: Implement POST endpoint for discussions API 2021-04-07 10:48:59 -07:00
stvn
87e375d627 feat: Implement update helper for discussions API 2021-04-07 10:48:59 -07:00
stvn
342d922034 feat: Implement to_internal_value helper for discussion API 2021-04-07 10:48:59 -07:00
stvn
def644b9aa feat: Add lti_configuration to discussions API payload 2021-04-07 10:48:59 -07:00
stvn
0cce315539 refactor: Base discussions serializer off of ModelSerializer
to make Django operations easier.
2021-04-07 10:48:59 -07:00
stvn
3f6f6e3667 refactor: Remove unused helper from discussions API 2021-04-07 10:48:56 -07:00
stvn
e8163c9161 fix: Use the correct name for serializer to_internal_value
Fortunately, this wasn't being used yet.
2021-04-07 10:48:08 -07:00
David Joy
8c6a06cf5b fix: adjust discussions app APIs to match consuming frontend (#27085)
This commit adjusts a few values in our discussions configuration APIs to make them match what the frontend needs, as well as to more accurately reflect the providers available today.

- The `active` provider ID is expressed as None if it doesn’t exist
- The “cs_comments_service” provider has been renamed “legacy” - when we implement the new discussions micro-frontend, we’ll also have a separate provider for that, so they can’t both be “cs_comments_service”.  Also, cs_comments_service is such a bad name for anything.
- The hard-coded providers list in get_supported_providers now includes ‘legacy’ and ‘piazza’, our two known providers.  This list will be updated as more known providers come online.
- The PROVIDER_FEATURE_MAP has similarly been updated.

Part of this task: TNL-8093
2021-03-23 13:37:16 -04:00
Usama Sadiq
aa618c460c refactor: remove unused-imports (#27083) 2021-03-19 22:42:14 +05:00
Usama Sadiq
5b9978029e refactor: ran pyupgrade on openedx/core/djangoapps (#26909)
Ran pyupgrade on {debug, demographics, discussions}.
2021-03-18 18:37:31 +05:00
stvn
054f4ac828 feat: Add discussions API endpoint [BD-03] 2021-03-10 01:01:53 -08:00
stvn
747a049420 docs: Add ADR for DiscussionsConfiguration HTTP API [BD-03] 2021-03-10 01:01:16 -08:00
Kyle McCormick
9aefd6f986 style: django-not-configured is not a sensible lint-amnesty value (#26862)
django-not-configured is an error raised by pylint (with
the pylint-django plugin) when it's not correctly configured.

We should not be applying lint amnesty for such a violation.
2021-03-05 08:11:58 -05:00
stvn
8314971e0b refactor: Convert discussions to pluggable app
This minimizes our footprint outside of the djangoapp, now and moving
forward. Not only can we drop the `lms/envs/common.py` change, but we
can also avoid touching `lms/urls.py` when we add the API. Everything
can stay contained within `openedx/core/djangoapps/discussions`.
2021-02-25 18:51:25 -08:00
usamasadiq
96f0915b0f Fixed new pylint warnings.
use generator in any/all()
disable not-callable warnings
disable no-member warnings
Suppressed smaller pylint warnings
Pin edx-proctoring==3.5.0
2021-02-22 16:36:53 +05:00
Aarif
c880a44947 replaced unittest assertions pytest assertions (#26566) 2021-02-22 12:24:07 +05:00
stvn
b17bbc8d66 style: Add more type-hints to discussions app 2021-02-10 08:42:05 -08:00
stvn
ef77ddc18d Merge PR #26345 bd03/admin/enabled
* Commits:
  fix: Add DiscussionsConfiguration.enabled to admin page
2021-02-10 08:25:16 -08:00
stvn
d8d4b4a0cc Merge PR #26346 bd03/models/str
* Commits:
  style: Cleanup DiscussionsConfiguration.__str__
2021-02-10 08:23:49 -08:00
M. Zulqarnain
c3c57c5ecd BOM-2322 : Pylint amnesty in openedx apps (#26367)
* pylint amnesty in demographics, discussions and comments app
2021-02-04 15:33:50 +05:00
stvn
d52ec518cf style: Cleanup DiscussionsConfiguration.__str__
This makes it more useful during debugging, as well as on the Django
Admin page.
2021-02-03 01:58:23 -08:00
stvn
9df2c4462f fix: Add DiscussionsConfiguration.enabled to admin page
Without this, we can't edit it via the default view.
2021-02-03 01:49:07 -08:00
stvn
c36c343c58 style: Fix pylint issues in discussions app 2021-02-02 16:57:39 -08:00
stvn
cff2cb8941 feat: Allow filtering of discussion providers
Propose and implement organization-wide discussion-provider filtering.

Fixes: TNL-7814
2021-02-02 06:51:41 -08:00
stvn
c7a4f97ba1 Add get-accessor helper for discussions plugins 2020-12-17 20:08:57 -08:00