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
911110c6
Commit
911110c6
authored
May 11, 2013
by
Piotr Mitros
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Imports djanalytics, and adds URLs
parent
348e9826
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
277 additions
and
0 deletions
+277
-0
lms/envs/analyticsserver.py
+262
-0
lms/envs/common.py
+7
-0
lms/urls.py
+8
-0
No files found.
lms/envs/analyticsserver.py
0 → 100644
View file @
911110c6
"""
This config file is used to host an analytics server. The edX codebase
is fairly monolithic, and expensive to import from within the
analytics framework. It also mixes up Django authentication databases,
etc. The analytics framework is fairly modular, and easy to import
from within edX. With this configuration.
This should configuration should never be enabled on a production LMS.
This configuration should also never be used as the main analytics
server. It should only be used as a thin layer to allow access to edX
data in a way that can use the edX libraries. When used in this mode,
it should only be granted access to read replicas of the databases.
"""
import
json
ROOT_URLCONF
=
'lms.urls'
from
.common
import
*
from
logsettings
import
get_logger_config
DEBUG
=
True
TEMPLATE_DEBUG
=
True
MITX_FEATURES
[
'DISABLE_START_DATES'
]
=
True
MITX_FEATURES
[
'ENABLE_SQL_TRACKING_LOGS'
]
=
True
MITX_FEATURES
[
'SUBDOMAIN_COURSE_LISTINGS'
]
=
False
# Enable to test subdomains--otherwise, want all courses to show up
MITX_FEATURES
[
'SUBDOMAIN_BRANDING'
]
=
True
MITX_FEATURES
[
'FORCE_UNIVERSITY_DOMAIN'
]
=
None
# show all university courses if in dev (ie don't use HTTP_HOST)
MITX_FEATURES
[
'ENABLE_MANUAL_GIT_RELOAD'
]
=
True
MITX_FEATURES
[
'ENABLE_PSYCHOMETRICS'
]
=
False
# real-time psychometrics (eg item response theory analysis in instructor dashboard)
MITX_FEATURES
[
'ENABLE_INSTRUCTOR_ANALYTICS'
]
=
True
MITX_FEATURES
[
'RUN_AS_ANALYTICS_SERVER_ENABLED'
]
=
True
INSTALLED_APPS
=
INSTALLED_APPS
+
(
'djeventstream.httphandler'
,
'djcelery'
,
'south'
,
'djanalytics.core'
,
'djanalytics.modulefs'
,
)
INSTALLED_ANALYTICS_MODULES
=
open
(
"../analytics_modules.txt"
)
.
readlines
()
INSTALLED_ANALYTICS_MODULES
=
[
x
for
x
in
INSTALLED_ANALYTICS_MODULES
if
x
and
len
(
x
)
>
1
]
DJFS
=
{
'type'
:
'osfs'
,
'directory_root'
:
'/tmp/djfsmodule'
,
'url_root'
:
'file:///tmp/'
}
import
djcelery
djcelery
.
setup_loader
()
default_optional_kwargs
=
[
'fs'
,
'db'
,
'query'
]
WIKI_ENABLED
=
True
LOGGING
=
get_logger_config
(
ENV_ROOT
/
"log"
,
logging_env
=
"dev"
,
local_loglevel
=
"DEBUG"
,
dev_env
=
True
,
debug
=
True
)
DATABASES
=
{
'default'
:
{
'ENGINE'
:
'django.db.backends.sqlite3'
,
'NAME'
:
ENV_ROOT
/
"db"
/
"mitx.db"
,
}
}
CACHES
=
{
# This is the cache used for most things.
# In staging/prod envs, the sessions also live here.
'default'
:
{
'BACKEND'
:
'django.core.cache.backends.locmem.LocMemCache'
,
'LOCATION'
:
'mitx_loc_mem_cache'
,
'KEY_FUNCTION'
:
'util.memcache.safe_key'
,
},
# The general cache is what you get if you use our util.cache. It's used for
# things like caching the course.xml file for different A/B test groups.
# We set it to be a DummyCache to force reloading of course.xml in dev.
# In staging environments, we would grab VERSION from data uploaded by the
# push process.
'general'
:
{
'BACKEND'
:
'django.core.cache.backends.dummy.DummyCache'
,
'KEY_PREFIX'
:
'general'
,
'VERSION'
:
4
,
'KEY_FUNCTION'
:
'util.memcache.safe_key'
,
},
'mongo_metadata_inheritance'
:
{
'BACKEND'
:
'django.core.cache.backends.filebased.FileBasedCache'
,
'LOCATION'
:
'/var/tmp/mongo_metadata_inheritance'
,
'TIMEOUT'
:
300
,
'KEY_FUNCTION'
:
'util.memcache.safe_key'
,
}
}
XQUEUE_INTERFACE
=
{
"url"
:
"https://sandbox-xqueue.edx.org"
,
"django_auth"
:
{
"username"
:
"lms"
,
"password"
:
"***REMOVED***"
},
"basic_auth"
:
(
'anant'
,
'agarwal'
),
}
# Make the keyedcache startup warnings go away
CACHE_TIMEOUT
=
0
# Dummy secret key for dev
SECRET_KEY
=
'85920908f28904ed733fe576320db18cabd7b6cd'
COURSE_LISTINGS
=
{
'default'
:
[
'BerkeleyX/CS169.1x/2012_Fall'
,
'BerkeleyX/CS188.1x/2012_Fall'
,
'HarvardX/CS50x/2012'
,
'HarvardX/PH207x/2012_Fall'
,
'MITx/3.091x/2012_Fall'
,
'MITx/6.002x/2012_Fall'
,
'MITx/6.00x/2012_Fall'
],
'berkeley'
:
[
'BerkeleyX/CS169/fa12'
,
'BerkeleyX/CS188/fa12'
],
'harvard'
:
[
'HarvardX/CS50x/2012H'
],
'mit'
:
[
'MITx/3.091/MIT_2012_Fall'
],
'sjsu'
:
[
'MITx/6.002x-EE98/2012_Fall_SJSU'
],
}
SUBDOMAIN_BRANDING
=
{
'sjsu'
:
'MITx'
,
'mit'
:
'MITx'
,
'berkeley'
:
'BerkeleyX'
,
'harvard'
:
'HarvardX'
,
}
# List of `university` landing pages to display, even though they may not
# have an actual course with that org set
VIRTUAL_UNIVERSITIES
=
[]
# Organization that contain other organizations
META_UNIVERSITIES
=
{
'UTx'
:
[
'UTAustinX'
]}
COMMENTS_SERVICE_KEY
=
"PUT_YOUR_API_KEY_HERE"
############################## Course static files ##########################
if
os
.
path
.
isdir
(
DATA_DIR
):
# Add the full course repo if there is no static directory
STATICFILES_DIRS
+=
[
# TODO (cpennington): When courses are stored in a database, this
# should no longer be added to STATICFILES
(
course_dir
,
DATA_DIR
/
course_dir
)
for
course_dir
in
os
.
listdir
(
DATA_DIR
)
if
(
os
.
path
.
isdir
(
DATA_DIR
/
course_dir
)
and
not
os
.
path
.
isdir
(
DATA_DIR
/
course_dir
/
'static'
))
]
# Otherwise, add only the static directory from the course dir
STATICFILES_DIRS
+=
[
# TODO (cpennington): When courses are stored in a database, this
# should no longer be added to STATICFILES
(
course_dir
,
DATA_DIR
/
course_dir
/
'static'
)
for
course_dir
in
os
.
listdir
(
DATA_DIR
)
if
(
os
.
path
.
isdir
(
DATA_DIR
/
course_dir
/
'static'
))
]
################################# mitx revision string #####################
MITX_VERSION_STRING
=
os
.
popen
(
'cd
%
s; git describe'
%
REPO_ROOT
)
.
read
()
.
strip
()
################################# Open ended grading config #####################
OPEN_ENDED_GRADING_INTERFACE
=
{
'url'
:
'http://127.0.0.1:3033/'
,
'username'
:
'lms'
,
'password'
:
'abcd'
,
'staff_grading'
:
'staff_grading'
,
'peer_grading'
:
'peer_grading'
,
'grading_controller'
:
'grading_controller'
}
################################ LMS Migration #################################
MITX_FEATURES
[
'ENABLE_LMS_MIGRATION'
]
=
True
MITX_FEATURES
[
'ACCESS_REQUIRE_STAFF_FOR_COURSE'
]
=
False
# require that user be in the staff_* group to be able to enroll
MITX_FEATURES
[
'USE_XQA_SERVER'
]
=
'http://xqa:server@content-qa.mitx.mit.edu/xqa'
INSTALLED_APPS
+=
(
'lms_migration'
,)
LMS_MIGRATION_ALLOWED_IPS
=
[
'127.0.0.1'
]
################################ OpenID Auth #################################
MITX_FEATURES
[
'AUTH_USE_OPENID'
]
=
True
MITX_FEATURES
[
'AUTH_USE_OPENID_PROVIDER'
]
=
True
MITX_FEATURES
[
'BYPASS_ACTIVATION_EMAIL_FOR_EXTAUTH'
]
=
True
INSTALLED_APPS
+=
(
'external_auth'
,)
INSTALLED_APPS
+=
(
'django_openid_auth'
,)
OPENID_CREATE_USERS
=
False
OPENID_UPDATE_DETAILS_FROM_SREG
=
True
OPENID_SSO_SERVER_URL
=
'https://www.google.com/accounts/o8/id'
# TODO: accept more endpoints
OPENID_USE_AS_ADMIN_LOGIN
=
False
OPENID_PROVIDER_TRUSTED_ROOTS
=
[
'*'
]
################################ MIT Certificates SSL Auth #################################
MITX_FEATURES
[
'AUTH_USE_MIT_CERTIFICATES'
]
=
True
################################ DEBUG TOOLBAR #################################
INSTALLED_APPS
+=
(
'debug_toolbar'
,)
MIDDLEWARE_CLASSES
+=
(
'django_comment_client.utils.QueryCountDebugMiddleware'
,
'debug_toolbar.middleware.DebugToolbarMiddleware'
,)
INTERNAL_IPS
=
(
'127.0.0.1'
,)
DEBUG_TOOLBAR_PANELS
=
(
'debug_toolbar.panels.version.VersionDebugPanel'
,
'debug_toolbar.panels.timer.TimerDebugPanel'
,
'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel'
,
'debug_toolbar.panels.headers.HeaderDebugPanel'
,
'debug_toolbar.panels.request_vars.RequestVarsDebugPanel'
,
'debug_toolbar.panels.sql.SQLDebugPanel'
,
'debug_toolbar.panels.signals.SignalDebugPanel'
,
'debug_toolbar.panels.logger.LoggingPanel'
,
# Enabling the profiler has a weird bug as of django-debug-toolbar==0.9.4 and
# Django=1.3.1/1.4 where requests to views get duplicated (your method gets
# hit twice). So you can uncomment when you need to diagnose performance
# problems, but you shouldn't leave it on.
# 'debug_toolbar.panels.profiling.ProfilingDebugPanel',
)
DEBUG_TOOLBAR_CONFIG
=
{
'INTERCEPT_REDIRECTS'
:
False
}
############################ FILE UPLOADS (for discussion forums) #############################
DEFAULT_FILE_STORAGE
=
'django.core.files.storage.FileSystemStorage'
MEDIA_ROOT
=
ENV_ROOT
/
"uploads"
MEDIA_URL
=
"/static/uploads/"
STATICFILES_DIRS
.
append
((
"uploads"
,
MEDIA_ROOT
))
FILE_UPLOAD_TEMP_DIR
=
ENV_ROOT
/
"uploads"
FILE_UPLOAD_HANDLERS
=
(
'django.core.files.uploadhandler.MemoryFileUploadHandler'
,
'django.core.files.uploadhandler.TemporaryFileUploadHandler'
,
)
########################### PIPELINE #################################
PIPELINE_SASS_ARGUMENTS
=
'--debug-info --require {proj_dir}/static/sass/bourbon/lib/bourbon.rb'
.
format
(
proj_dir
=
PROJECT_ROOT
)
########################## PEARSON TESTING ###########################
MITX_FEATURES
[
'ENABLE_PEARSON_LOGIN'
]
=
False
########################## ANALYTICS TESTING ########################
ANALYTICS_SERVER_URL
=
"http://127.0.0.1:9000/"
ANALYTICS_API_KEY
=
""
lms/envs/common.py
View file @
911110c6
...
...
@@ -85,6 +85,13 @@ MITX_FEATURES = {
# analytics experiments
'ENABLE_INSTRUCTOR_ANALYTICS'
:
False
,
# enable analytics server.
# WARNING: THIS SHOULD ALWAYS BE SET TO FALSE UNDER NORMAL
# LMS OPERATION. See analytics.py for details about what
# this does.
'RUN_AS_ANALYTICS_SERVER_ENABLED'
:
False
,
# Flip to True when the YouTube iframe API breaks (again)
'USE_YOUTUBE_OBJECT_API'
:
False
,
...
...
lms/urls.py
View file @
911110c6
...
...
@@ -353,6 +353,12 @@ if settings.MITX_FEATURES.get('ENABLE_SQL_TRACKING_LOGS'):
url
(
r'^event_logs/(?P<args>.+)$'
,
'track.views.view_tracking_log'
),
)
if
settings
.
MITX_FEATURES
.
get
(
'RUN_AS_ANALYTICS_SERVER_ENABLED'
):
urlpatterns
+=
(
url
(
'^'
,
include
(
'djanalytics.core.urls'
)),
)
import
djanalytics.core.registry
# FoldIt views
urlpatterns
+=
(
# The path is hardcoded into their app...
...
...
@@ -367,3 +373,5 @@ if settings.DEBUG:
#Custom error pages
handler404
=
'static_template_view.views.render_404'
handler500
=
'static_template_view.views.render_500'
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