Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
89bac8a4
Commit
89bac8a4
authored
Jul 01, 2012
by
ichuang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of github.com:MITx/mitx into stable-edx4edx
parents
cd6bd19b
746f47d1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
93 additions
and
79 deletions
+93
-79
lms/djangoapps/courseware/course_settings.py
+92
-0
lms/djangoapps/courseware/global_course_settings.py
+0
-28
lms/djangoapps/courseware/grades.py
+1
-51
No files found.
lms/djangoapps/courseware/course_settings.py
0 → 100644
View file @
89bac8a4
"""
Course settings module. All settings in the global_settings are
first applied, and then any settings in the settings.DATA_DIR/course_settings.json
are applied. A setting must be in ALL_CAPS.
Settings are used by calling
from courseware.course_settings import course_settings
Note that courseware.course_settings.course_settings is not a module -- it's an object. So
importing individual settings is not possible:
from courseware.course_settings.course_settings import GRADER # This won't work.
"""
import
json
import
logging
from
django.conf
import
settings
from
xmodule
import
graders
log
=
logging
.
getLogger
(
"mitx.courseware"
)
global_settings_json
=
"""
{
"GRADER" : [
{
"type" : "Homework",
"min_count" : 12,
"drop_count" : 2,
"short_label" : "HW",
"weight" : 0.15
},
{
"type" : "Lab",
"min_count" : 12,
"drop_count" : 2,
"category" : "Labs",
"weight" : 0.15
},
{
"type" : "Midterm",
"name" : "Midterm Exam",
"short_label" : "Midterm",
"weight" : 0.3
},
{
"type" : "Final",
"name" : "Final Exam",
"short_label" : "Final",
"weight" : 0.4
}
],
"GRADE_CUTOFFS" : {
"A" : 0.87,
"B" : 0.7,
"C" : 0.6
}
}
"""
class
Settings
(
object
):
def
__init__
(
self
):
# Load the global settings as a dictionary
global_settings
=
json
.
loads
(
global_settings_json
)
# Load the course settings as a dictionary
course_settings
=
{}
try
:
with
open
(
settings
.
DATA_DIR
+
"/course_settings.json"
)
as
course_settings_file
:
course_settings_string
=
course_settings_file
.
read
()
course_settings
=
json
.
loads
(
course_settings_string
)
except
IOError
:
log
.
warning
(
"Unable to load course settings file from "
+
str
(
settings
.
DATA_DIR
)
+
"/course_settings.json"
)
# Override any global settings with the course settings
global_settings
.
update
(
course_settings
)
# Now, set the properties from the course settings on ourselves
for
setting
in
global_settings
:
setting_value
=
global_settings
[
setting
]
setattr
(
self
,
setting
,
setting_value
)
# Here is where we should parse any configurations, so that we can fail early
self
.
GRADER
=
graders
.
grader_from_conf
(
self
.
GRADER
)
course_settings
=
Settings
()
lms/djangoapps/courseware/global_course_settings.py
deleted
100644 → 0
View file @
cd6bd19b
GRADER
=
[
{
'type'
:
"Homework"
,
'min_count'
:
12
,
'drop_count'
:
2
,
'short_label'
:
"HW"
,
'weight'
:
0.15
,
},
{
'type'
:
"Lab"
,
'min_count'
:
12
,
'drop_count'
:
2
,
'category'
:
"Labs"
,
'weight'
:
0.15
},
{
'type'
:
"Midterm"
,
'name'
:
"Midterm Exam"
,
'short_label'
:
"Midterm"
,
'weight'
:
0.3
,
},
{
'type'
:
"Final"
,
'name'
:
"Final Exam"
,
'short_label'
:
"Final"
,
'weight'
:
0.4
,
}
]
lms/djangoapps/courseware/grades.py
View file @
89bac8a4
"""
Course settings module. The settings are based of django.conf. All settings in
courseware.global_course_settings are first applied, and then any settings
in the settings.DATA_DIR/course_settings.py are applied. A setting must be
in ALL_CAPS.
Settings are used by calling
from courseware import course_settings
Note that courseware.course_settings is not a module -- it's an object. So
importing individual settings is not possible:
from courseware.course_settings import GRADER # This won't work.
"""
from
lxml
import
etree
from
lxml
import
etree
import
random
import
random
import
imp
import
imp
...
@@ -24,7 +7,7 @@ import types
...
@@ -24,7 +7,7 @@ import types
from
django.conf
import
settings
from
django.conf
import
settings
from
courseware
import
global_
course_settings
from
courseware
.course_settings
import
course_settings
from
xmodule
import
graders
from
xmodule
import
graders
from
xmodule.graders
import
Score
from
xmodule.graders
import
Score
from
models
import
StudentModule
from
models
import
StudentModule
...
@@ -33,39 +16,6 @@ import xmodule
...
@@ -33,39 +16,6 @@ import xmodule
_log
=
logging
.
getLogger
(
"mitx.courseware"
)
_log
=
logging
.
getLogger
(
"mitx.courseware"
)
class
Settings
(
object
):
def
__init__
(
self
):
# update this dict from global settings (but only for ALL_CAPS settings)
for
setting
in
dir
(
global_course_settings
):
if
setting
==
setting
.
upper
():
setattr
(
self
,
setting
,
getattr
(
global_course_settings
,
setting
))
data_dir
=
settings
.
DATA_DIR
fp
=
None
try
:
fp
,
pathname
,
description
=
imp
.
find_module
(
"course_settings"
,
[
data_dir
])
mod
=
imp
.
load_module
(
"course_settings"
,
fp
,
pathname
,
description
)
except
Exception
as
e
:
_log
.
exception
(
"Unable to import course settings file from "
+
data_dir
+
". Error: "
+
str
(
e
))
mod
=
types
.
ModuleType
(
'course_settings'
)
finally
:
if
fp
:
fp
.
close
()
for
setting
in
dir
(
mod
):
if
setting
==
setting
.
upper
():
setting_value
=
getattr
(
mod
,
setting
)
setattr
(
self
,
setting
,
setting_value
)
# Here is where we should parse any configurations, so that we can fail early
self
.
GRADER
=
graders
.
grader_from_conf
(
self
.
GRADER
)
course_settings
=
Settings
()
def
grade_sheet
(
student
,
coursename
=
None
):
def
grade_sheet
(
student
,
coursename
=
None
):
"""
"""
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment