Commit Graph

59 Commits

Author SHA1 Message Date
SaadYousaf
c0631c320e fix: legacy coverage and add missing properties for reported events 2022-11-17 13:03:47 +05:00
SaadYousaf
17df3d4e17 feat: add discussion reported and unreported events 2022-11-01 15:57:13 +05:00
SaadYousaf
c79c41e0a3 fix: filter out discussion topics that have not started yet for instructor paced courses 2022-10-13 23:15:46 +05:00
Ahtisham Shahid
c2696c07fc fix: updated topic sorting for discussions MFE (#31124)
* fix: updated topic sorting for discussions MFE

* feat: updated topic sorting test case
2022-10-13 15:09:19 +05:00
Saad Yousaf
3423feb4fd Revert "fix: filter out discussion topics that have not started yet."
This reverts commit 54b5d59fc3.
2022-10-08 14:58:14 +05:00
SaadYousaf
54b5d59fc3 fix: filter out discussion topics that have not started yet. 2022-10-07 15:17:12 +05:00
SaadYousaf
6aca8abe87 feat: add event for edited content in discussions 2022-10-03 15:00:03 +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
Ahtisham Shahid
eca87000c4 Created a edx.forum.thread.locked event (#30964)
* feat: added new discussions event edx.forum.thread.locked
2022-09-15 11:18:32 +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
Muhammad Adeel Tajamul
8c13fae0ff feat: backend change for copy post functionality for discussions post (#30941)
Co-authored-by: adeel.tajamul <adeel.tajamul@arbisoft.com>
2022-09-12 12:31:57 +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
SaadYousaf
257a7f38d3 feat: enable moderators to unreport content for discussion api 2022-07-27 19:30:52 +05:00
adeel.tajamul
7d6ce90213 fix: fixed topics test cases 2022-06-22 06:25:40 +05:00
Kshitij Sobti
f3f604c25f fix: Disallow endorsements for replies to comments (#30310)
Disables the "endorsement" action for nested comments. Only top-level comments should support endorsement.
2022-04-25 16:13:10 +05:00
Kshitij Sobti
1ea90d8843 fix!: supply the editor and closing user as separate params to cs_comments_service (#30230)
The forum service doesn't get the requesting user id for any operation, only the user id of the content creator. So to apply a different user id for an editor or post closing user, those need to be explicitly passed.
2022-04-14 16:21:55 +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
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
Michael Terry
b905de757b test: more Old Mongo removal from tests
Convert more tests from MONGO_AMNESTY to SPLIT modulestores.

This is in preparation for just wholesale denying access to Old
Mongo, so I either converted tests to split or just deleted some
test variants that were Old Mongo specific. (e.g. ddt lines)
2022-02-11 14:50:30 -05:00
Michael Terry
cb1bb7fa64 test: switch default test store to the split store
It's long past time that the default test modulestore was Split,
instead of Old Mongo. This commit switches the default store and
fixes some tests that now fail:
- Tests that didn't expect MFE to be enabled (because we don't
  enable MFE for Old Mongo) - opt out of MFE for those
- Tests that hardcoded old key string formats
- Lots of other random little differences

In many places, I didn't spend much time trying to figure out how to
properly fix the test, and instead just set the modulestore to Old
Mongo.

For those tests that I didn't spend time investigating, I've set
the modulestore to TEST_DATA_MONGO_AMNESTY_MODULESTORE - search for
that string to find further work.
2022-02-04 14:32:50 -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
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
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
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
Usama Sadiq
f74d7c9ea7 refactor: pyupgrade second iteration 2021-04-30 15:35:47 +05:00
stvn
ffcfc05a61 refactor: Move BetaTesterFactory helper to common/ 2021-04-14 07:26:39 -07:00
stvn
2fa36fb0cf refactor: Move StaffFactory helper to common/ 2021-04-14 07:26:39 -07: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
Aarif
a8b9733654 replaced unittest assertions pytest assertions (#26544) 2021-02-19 11:59:44 +05:00
SaadYousaf
50e71479ee [TNL-7729] - Add check to discussion rest API to prevent users in blackout period. 2021-02-16 14:08:56 +05:00
M. Zulqarnain
65cf0db337 BOM-2278 : Pylint amnesty in discussion, dashboard (#26275)
* pylint amnesty in discussion, dashboard
2021-02-03 18:15:14 +05:00
David Ormsbee
a333a71411 Format blackout dates to match rest of Discussions API.
Technically, both "2020-10-20T23:59:00Z" and "2020-10-20T23:59:00+00:00"
are ISO-8601 compliant, though the latter is preferred. The Discussions
API uses the "Z" notation for almost all its dates, except for the
course blackout dates (those times when students aren't allowed to post
anything because it would threaten exam integrity). That's because the
blackout dates are manually formatted using datetime.isoformat().

As best as I can tell, we've always passed back the "+00:00" for the
blackout dates. But at some point, this broke the expectations of the
mobile apps, which expect the "+Z" format, like the rest of the API.
This commit changes the blackout dates to be returned in +Z format when
the blackout datetimes are specified by the user in UTC (which is almost
always the case–I suspect the mobile clients would break if the dates
were specified in other timezones anyhow).
2020-11-23 10:30:12 -05:00
Kyle McCormick
151bd13666 Use full names for common.djangoapps imports; warn when using old style (#25477)
* Generate common/djangoapps import shims for LMS
* Generate common/djangoapps import shims for Studio
* Stop appending project root to sys.path
* Stop appending common/djangoapps to sys.path
* Import from common.djangoapps.course_action_state instead of course_action_state
* Import from common.djangoapps.course_modes instead of course_modes
* Import from common.djangoapps.database_fixups instead of database_fixups
* Import from common.djangoapps.edxmako instead of edxmako
* Import from common.djangoapps.entitlements instead of entitlements
* Import from common.djangoapps.pipline_mako instead of pipeline_mako
* Import from common.djangoapps.static_replace instead of static_replace
* Import from common.djangoapps.student instead of student
* Import from common.djangoapps.terrain instead of terrain
* Import from common.djangoapps.third_party_auth instead of third_party_auth
* Import from common.djangoapps.track instead of track
* Import from common.djangoapps.util instead of util
* Import from common.djangoapps.xblock_django instead of xblock_django
* Add empty common/djangoapps/__init__.py to fix pytest collection
* Fix pylint formatting violations
* Exclude import_shims/ directory tree from linting
2020-11-10 07:02:01 -05:00
Aarif
98af9ce418 remove useless-supression warnings 2020-05-01 19:42:15 +05:00
usama sadiq
1c52f19f19 Deprecation of the direct assignment to the forward side of a many-to-many set
Changed the direct assignments with the use of set() method.
2020-01-07 14:40:23 +05:00
Feanil Patel
9cf2f9f298 Run 2to3 -f future . -w
This will remove imports from __future__ that are no longer needed.

https://docs.python.org/3.5/library/2to3.html#2to3fixer-future
2019-12-30 10:35:30 -05:00
Ned Batchelder
efba6e45e8 Finally import courseware properly everywhere to get rid of a warning 2019-09-26 09:40:15 -04:00
Stu Young
13e624a50b INCR-307 Run python-modernize on lms/djangoapps/discussion/rest_api (#20618)
* run python modernize

* run isort

* Fix quality
2019-05-28 12:51:49 -04:00