fix: fixed creating post based on discussion restrictions settings (#34872)
This commit is contained in:
@@ -108,6 +108,7 @@ class EmailString(String):
|
||||
"""
|
||||
Parse String with email validation
|
||||
"""
|
||||
|
||||
def from_json(self, value):
|
||||
if value:
|
||||
validate_email(value)
|
||||
@@ -226,6 +227,7 @@ class ProctoringProvider(String):
|
||||
ProctoringProvider field, which includes validation of the provider
|
||||
and default that pulls from edx platform settings.
|
||||
"""
|
||||
|
||||
def from_json(self, value):
|
||||
"""
|
||||
Return ProctoringProvider as full featured Python type. Perform validation on the provider
|
||||
@@ -1457,15 +1459,18 @@ class CourseBlock(
|
||||
@property
|
||||
def forum_posts_allowed(self):
|
||||
"""
|
||||
Return whether forum posts are allowed by the discussion_blackouts
|
||||
setting
|
||||
Return whether forum posts are allowed by the discussion_blackouts setting
|
||||
Checks if posting restrictions are enabled or if there's a currently ongoing blackout period.
|
||||
"""
|
||||
|
||||
blackouts = self.get_discussion_blackout_datetimes()
|
||||
posting_restrictions = self.discussions_settings.get('posting_restrictions', 'disabled')
|
||||
now = datetime.now(utc)
|
||||
for blackout in blackouts:
|
||||
if blackout["start"] <= now <= blackout["end"]:
|
||||
return False
|
||||
return True
|
||||
|
||||
if posting_restrictions == 'enabled':
|
||||
return False
|
||||
|
||||
return all(not (blackout["start"] <= now <= blackout["end"]) for blackout in blackouts)
|
||||
|
||||
@property
|
||||
def number(self):
|
||||
|
||||
@@ -44,6 +44,7 @@ class XModuleFactoryLock(threading.local):
|
||||
after ensuring that a) the modulestore will be cleaned up, and b) that XModuleFactoryLock.disable
|
||||
will be called.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self._enabled = False
|
||||
@@ -123,6 +124,7 @@ class CourseFactory(XModuleFactory):
|
||||
run = kwargs.pop('run', name)
|
||||
user_id = kwargs.pop('user_id', ModuleStoreEnum.UserID.test)
|
||||
emit_signals = kwargs.pop('emit_signals', False)
|
||||
|
||||
# By default course has enrollment_start in the future which means course is closed for enrollment.
|
||||
# We're setting the 'enrollment_start' field to None to reduce number of arguments needed to setup course.
|
||||
# Use the 'default_enrollment_start=True' kwarg to skip this and use the default enrollment_start date.
|
||||
@@ -478,6 +480,7 @@ class StackTraceCounter:
|
||||
"""
|
||||
A class that counts unique stack traces underneath a particular stack frame.
|
||||
"""
|
||||
|
||||
def __init__(self, stack_depth, include_arguments=True):
|
||||
"""
|
||||
Arguments:
|
||||
|
||||
Reference in New Issue
Block a user