Commit Graph

70 Commits

Author SHA1 Message Date
AsadAzam
23972e7f94 fix: merge discussions rollout flags (#30989)
* fix: merge discussions rollout flags

* test: fixed tests

* test: fixed tests
2022-09-21 14:28:33 +05:00
SaadYousaf
85a8b39735 feat: add event for content deletion for discussions 2022-09-21 13:20:58 +05:00
Muhammad Adeel Tajamul
1259c0e7a5 fix: sort order will not be alphabetical (#30990)
Co-authored-by: adeel.tajamul <adeel.tajamul@arbisoft.com>
2022-09-19 12:24:46 +05:00
SaadYousaf
b8e466b55c fix: update editable action item for different discussion and course roles 2022-09-19 11:51:24 +05:00
Kshitij Sobti
6ebc9b3888 feat: Track additional discussion context for better deletion handling (#30140)
Tracks a discussion topics' section and subsection in a new context field so that we have access to that information when the topic's section/subsection/unit has been deleted. This is then used when a topic is deleted to append the section and subsection name to the topic title.

ADR: https://github.com/openedx/edx-platform/pull/29928
2022-09-13 16:01:25 +05:00
Ahtisham Shahid
4541750eec feat: added tracking event on learner search (#30945) 2022-09-07 14:50:00 +05:00
Saad Yousaf
fb716a76d9 fix: allow discussion moderators to unreport their content (#30938)
Co-authored-by: SaadYousaf <saadyousaf@A006-00314.local>
2022-09-05 18:39:46 +05:00
SaadYousaf
495d1cc86c fix: add is_group_ta and has_moderations_privileges to course settings API 2022-08-24 12:04:27 +05:00
Ahtisham Shahid
dcb01d107f fix: Temporary fix for learners stats api performance issue (#30847)
* fix: Temporary fix for learners' stats API performance issue

* fix: resolved linter errors

* fix: learners stats API response is now null

* fix: changed waffle dates

* fix: resolved unit test issue
2022-08-12 17:24:22 +05:00
SaadYousaf
257a7f38d3 feat: enable moderators to unreport content for discussion api 2022-07-27 19:30:52 +05:00
Ahtisham Shahid
43de567018 fix: resolved issue when user profile does not exist (#30760)
fix: resolved issue when user profile does not exist
2022-07-22 14:38:25 +05:00
SaadYousaf
1ad3fb4992 fix: add staff permission to privileges check for learner tab 2022-07-20 19:56:39 +05:00
Ahtisham Shahid
a6e35897a1 feat: added logs to assess root cause of error in threads api (#30748)
Co-authored-by: AhtishamShahid <ahtishamshahid@A006-00850.local>
2022-07-20 15:17:28 +05:00
SaadYousaf
28a8e618ac feat: add partial username search for course discussion user stats 2022-06-30 17:37:03 +05:00
SaadYousaf
20de3c71b4 fix: fix links in reported content email to point to new MFE 2022-06-24 11:08:59 +05:00
adeel.tajamul
3ef0bd6d00 fix: added thread structure 2022-06-23 13:44:18 +05:00
adeel.tajamul
cebe02ae51 fix: added doc strings to test cases 2022-06-23 13:44:18 +05:00
adeel.tajamul
92e862149d fix: pinned is set to false for all posts in learner area 2022-06-23 13:44:18 +05:00
adeel.tajamul
7481b11e25 fix: updated api response 2022-06-23 13:44:17 +05:00
adeel.tajamul
a91139d4c0 fix: fixed topics api sort to same as legacy sort 2022-06-21 18:43:38 +05:00
adeel.tajamul
501ac92bd2 fix: thread api will now allow filter by group id 2022-05-31 07:02:44 +05:00
SaadYousaf
98262c088d feat: send email to moderators after content is reported 2022-04-27 22:18:56 +05:00
Abdurrahman Asad
56cef9cb6a fix: add field to check if user is admin (#30089)
fix: add field to check if user is admin
2022-03-21 11:36:33 +05:00
Kshitij Sobti
f3b89770e0 feat: add support for specifying and retrieving moderation reason codes from the LMS settings (#30015)
Reason codes will be used by the frontend to list and validate the reasons for specifying moderation actions.

Co-authored-by: Kshitij Sobti <kshitij@opencraft.com>

Co-authored-by: Felipe Trzaskowski <felipe@opencraft.com>
2022-03-18 11:13:30 +05:00
Felipe Trzaskowski
6bfb741c4a feat: add edit_reason_code and close_reason_code (#29609)
Add `edit_reason_code` field to both `Comments` and `Threads`, making it
editable for anyone who can also edit `raw_body`.

Add `close_reason_code` field to `Threads`, and make it editable by
anyone who can also edit `closed`.
2022-03-16 17:02:47 +05:00
SaadYousaf
e343dee195 fix: add event tracking for viewing thread for discussions api 2022-03-10 14:38:59 +05:00
Maxim Beder
7e742e2042 feat: add flag to toggle learners tab (#29955) 2022-03-07 11:14:45 +05:00
Kshitij Sobti
f7df694c5f feat: add provider info to the discussion configuration API (#29864)
The new discusions MFE needs to know which provider is in use (legacy or new) to deliver the expected experience. This adds the provider name and other relevant configuration to the discussion configuraiton API.
2022-02-28 11:23:28 +05:00
Kshitij Sobti
23be63309b feat: Add a new user API for discussions (#29287)
Adds a new user API for discussion that returns the discussion stats across the course.
2022-02-01 17:51:01 +05:00
Kshitij Sobti
2758301c31 feat: Discussion Topics API v2 [BD-38] [TNL-9332] [BB-5189] (#29530)
* feat: New API for discussion topics

Creates a new API for discussion topics that uses auto-crated discussion topic links for the new discussion provider.

* squash!: refresh migration
2022-01-31 15:57:49 +05:00
Jawayria
7f5b4a6a47 chore: removed 'wrong-import-order' from disabled imports (#29365)
* chore: removed 'wrong-import-order' from disabled imports
2022-01-06 19:14:51 +05:00
Felipe Trzaskowski
c0e19ec165 Add new discussions API endpoints to retrieve comments and threads from an user [BD-38] [TNL-8796] [BB-4969] (#29137)
* feat: add api mapping to get comments by course+user

fix: merge the new user comments API by overloading the thread comments API

fix: handle endorsements and fix broken tests

fix: improve the view documentation

fix: unused imports

fix: restrict flagged filter to privileged users

fix: validate course_id properly

* fix: add docstring to the retrieve_all method
2022-01-04 11:21:47 +05:00
Jawayria
332f0f1ea7 chore: Applied lint-amnesty on lms/djangoapps/discussion 2021-12-20 16:25:03 +05:00
Kshitij Sobti
606fb95059 feat: return user roles and privilege information in course metadata (#29448)
The frontends need to be aware of a user's privileges in order to know what operations are supported. This adds the user roles and privilege information to the discussion metadata API.
2021-12-06 11:21:25 +05:00
Maxim Beder
eabd6e8019 feat: add anonymous settings to discussions api (#28981)
If course allows anonymous posts, and user is an author of a post, add
`anonymous` to posts' editable fields.
If course allows anonymous to peers posts, and user is an author of a
post, add `anonymous_to_peers` to posts' editable fields.

Course endpoint response to get request will now include course's
`allow_anonymous` and `allow_anonymous_to_peers` settings.

Added `anonymous` and `anonymous_to_peers` fields to the content
serializer, from which ThreadSerializer and CommentSerializer inherit.
Both fields have a default value of False, because there are cases where
course configuration doesn't allow them to be initialized (if a course
doesn't allow anonymous posts, the fields won't be included in the list
of initializable/editable fields).
2021-11-02 11:25:40 +05:00
AsadAzam
2b14c3157b Revert "Revert "feat: Add support for returning thread counts for all topics in a course [BD-38] [TNL-8724] [BB-4927] (#29062)" (#29087)" (#29152)
This reverts commit ed74db1daf.
2021-10-29 16:20:48 +05:00
Kshitij Sobti
79cd0b1ef8 feat: Adds discussions settings for new discusions experience [BD-38] [TNL-8621] [BB-4854] (#29131)
* feat: Adds discussions settings for new discusions experience
This commit adds new discussions settings for the new discussions experience. These are stored in the course so they can be a part of course import/export flow.
These are also added to the discussions configuraiton API to allow MFEs to update the settings.
The discussions API is currently available via LMS, however that means it cannot save changes to the modulestore. This also adds the API to the studio config so it can now also be accessed from studio and be used to save course settings.

* fix: tests
2021-10-28 11:56:17 +05:00
David Ormsbee
5d0132305d Revert "feat: Adds discussions settings for new discusions experience (#28749)"
This reverts commit bb0c03123c.
2021-10-27 10:40:12 -04:00
Kshitij Sobti
bb0c03123c feat: Adds discussions settings for new discusions experience (#28749)
This commit adds new discussions settings for the new discussions experience. These are stored in the course so they can be a part of course import/export flow.
These are also added to the discussions configuraiton API to allow MFEs to update the settings.
The discussions API is currently available via LMS, however that means it cannot save changes to the modulestore. This also adds the API to the studio config so it can now also be accessed from studio and be used to save course settings.
2021-10-27 15:41:27 +05:00
Awais Jibran
f1957a7cf7 fix: lms discussion tab url should be accurate (#29110)
* fix: lms discussion tab url should be accurate

* refactor: change supports_lti feature

* refactor: rename variable

* refactor: rename feature variable.

* fix: update supports_lti method

* test: fix failing tests.

* test: fix quality test failure

Co-authored-by: SaadYousaf <saadyousaf@A006-00314.local>
2021-10-26 19:57:41 +05:00
Awais Jibran
ed74db1daf Revert "feat: Add support for returning thread counts for all topics in a course [BD-38] [TNL-8724] [BB-4927] (#29062)" (#29087)
This reverts commit a2f04fb78b.
2021-10-22 17:21:44 +05:00
Kshitij Sobti
a2f04fb78b feat: Add support for returning thread counts for all topics in a course [BD-38] [TNL-8724] [BB-4927] (#29062)
* feat: Add support for returning thread counts for all topics in a course

In the new discussions experience the thread counts for questions and discussions are displayed in the UI.
This uses a new cs_comments_service API to fetch that data and embed it in the topic listing.

* fix: apply review feedback fixes
2021-10-22 11:22:05 +05:00
Kshitij Sobti
dd6e908635 feat: Add support for pinning and closing threads, adds a preview and a delete check field (#28809)
Adds support for pinning and closing threads to the current REST APIs for discusions.
Adds a preview_body field to the thread response that contains a truncated version of the raw body with tags removed so it can be shown in previews.
Adds a field called "can_delete" to threads and comments that signals if the current user is able to delete that resource.
2021-10-01 19:57:12 +05:00
Kshitij Sobti
423ac00809 Makes counting flagged comments optional, instead of automatic in case of moderators 2021-07-14 13:19:12 +05:00
Aayush Agrawal
ffe3ee3869 feat: Adds additional data and filters to discussions API
This change adds three new filters to the threads API. They are:
* Filtering only threads that are flagged for abuse
* Filtering by the thread type (discussion or question)
* Filtering by the thread author

In addition it also adds a new ``abuse_flagged_count`` field for threads. It
returns a count of the number of comments in a thread that are flagged for abuse.
This is only visible to users that have moderator privileges or higher.

Finally it also adds a ``abuse_flagged_any_user`` field that is set if any user
has flagged a thread. This field too, is only visible to moderators or above.

Co-authored-by: Kshitij Sobti <kshitij@opencraft.com>
2021-07-14 13:19:12 +05:00
Kshitij Sobti
d2c2fcdefe feat: Course Apps API [BD-38] [TNL-8103] [BB-2716] (#27542)
* feat: Course Apps API

This adds a new concept called course apps. These are exposed via a new
"openedx.course_app" entrypoint, which helps the LMS and studio discover such
apps and list them in a new rest api for the same.

These course apps will drive the pages and resources view in the course authoring
MFE. This system will track which apps are enabled and which are disabled. It
also allows third-party apps to be listed here by using the plugin entrypoint.

* Apply feedback from review
2021-06-23 21:51:12 +05:00
stvn
1b76999c2f refactor: Remove get_course_discussion_settings helper 2021-04-30 11:47:34 -07: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
edX requirements bot
f33f12bbea BOM-2358 : Pyupgrade in dashboard, debug, discussion apps (#26529)
* Python code cleanup by the cleanup-python-code Jenkins job.

This pull request was generated by the cleanup-python-code Jenkins job, which ran
```
cd lms/djangoapps/dashboard; find . -type f -name '*.py' | while read fname; do sed -i 's/  # lint-amnesty, pylint: disable=super-with-arguments//; s/  # lint-amnesty, pylint: disable=import-error, wrong-import-order//; s/  # lint-amnesty, pylint: disable=wrong-import-order//' "$fname"; done; find . -type f -name '*.py' | while read fname; do pyupgrade --exit-zero-even-if-changed --py3-plus --py36-plus --py38-plus "$fname"; done; isort --recursive .
```

The following packages were installed:
`pyupgrade,isort`

* feedback done

Co-authored-by: Zulqarnain <muhammad.zulqarnain@arbisoft.com>
2021-02-22 15:42:21 +05:00
Sarina Canelake
ac999ec1fc Merge pull request #25984 from naeem91/patch-1
Fix PY3 incompatible division
2021-02-18 14:57:38 -05:00