Commit Graph

56 Commits

Author SHA1 Message Date
John Eskew
812aa6381e Upgrade to Django 1.8.11. Remove monkey patch required for v1.8.10. 2016-03-08 11:41:33 -05:00
John Eskew
ccb07f1c49 Monkey patch django.utils.http.is_safe_url for Django 1.8.10. 2016-03-03 16:53:42 -05:00
Bill DeRusha
bec6971ae2 Monkey patch django.db.models.options for faster cache expiry 2016-02-29 17:37:17 -05:00
Matjaz Gregoric
9b89bd3245 Make comprehensive theme work with django templates.
Comprehensive theming did not work with django templates (used by course wiki).

The reason it didn't work was that in order for the theme to work, theme template folder
has to be added to django template dirs setting *before* django startup.
After django startup, modifying `settings.DEFAULT_TEMPLATE_ENGINE['DIRS']` has no effect,
because at that point the template engine is already initialized with a copy of the
template dirs list.

Instead of running the theme startup code as an autostartup hook, we manually run it
*before* `django.setup()`. This is fine because theme startup code doesn't have to do
anything else besides modifying some settings and doesn't actually need django to be
initialized.
2016-01-25 08:45:52 +01:00
Felipe Montoya
4742e661f4 Creating a settings object that is aware of the microsite settings.
Adding the declaration of the settings object to openedx.conf to be able to import it from a nicer location

Resolving quality violations

Merging dicts with the settings definition when they exist in the microsite configuration

Using a cache to improve the perfomance of quering any dictionary in the microsite definition

Ignoring the invalid-name pylint warning since the names must be kept thsi way to stay the same as the ones in django.
Removing the default dict argument as per https://docs.python.org/2/tutorial/controlflow.html#default-argument-values

Extracting the implementation of the microsite to a selectable backend.

Leaving the function startup.enable_microsites for backwards compatibilityy

Adding a database backend

Using a cache to improve the perfomance of quering any dictionary in the microsite definition.
Changed the database backend so that it extends the settings file backend and removed all the unnecessary methods.

Using the backend provider for the get_dict function

some tweeks and some initial unit tests

Using getattr as a function insteal of calling the underlying __getattr__ directly

Adding an ModelAdmin object for the microsite model in the django-admin panel

refactor enable_microsites()

consolidate/refactor some shared code

add config to aws.py and add migration files

fix tests

Changes to get the backends to run after the refactor

add archiving capabilities to microsites. Also make a few notes about performance improvements to make

fix tests

Making the query to find if microsites exist in the database faster

add ORG to microsite mapping tables and some performance improvements

allow for Mako templates to be pulled from the database

fix tests

For the database template backend the uri of the template does not use the filesystem relative path

Fixing pylint violations

Added caching of the templates stored in the database

Fixing pylint errors

fix pylint

Clearing the cache on model save

Fixing pylint errors

rebased and added test coverage

rebased cdodge/microsite-improvements branch with master and added test
coverage

added missing migration

fix quality violations

add more test coverage

mattdrayer: Add microsite_configuration to cms.INSTALLED_APPS

added microsite settings to cms/envs/test.py

run session cookie tests only in LMS

fixed broken tests

putting middleware changes back

Preventing the template_backend to be called on requests which have no microsite

changes to address feedback from mjfrey

changed BaseMicrositeBackend to AbstractBaseMicrositeBackend

changes after feedback from mattdrayer

fixed broken tests and quality violations

Allowing the backend to handle the enable_pre_startup routine

Typos and docstrings

Adressing feedback

Fixing python tests

add comment to explain why we need enable_microsites_pre_startup()
2016-01-15 14:52:36 +05:00
Felipe Montoya
f2a6a27ec9 Adding support for microsite template_paths on django templates
Stripping the leading / for the django_templates finder

Enabling the microsite configurations before running django.setup()

Adding only the templates directory before startup

Adding the missing overrides file at the django templates main

Using the comp_theming way of overriding css

Adding test for the microsite_template_path filter
2016-01-12 10:34:00 -05:00
Ned Batchelder
f5d0f3ff55 Remove useless pylint suppressions 2015-11-22 07:41:19 -05:00
Usman Khalid
6cb62f2697 Rebase upgrade Django to v1.8.5
Please note that this is a squshed commit and the work of:
Symbolist, macdiesel, nedbat, doctoryes, muzaffaryousaf and muhammad-ammar
2015-11-10 15:00:19 -05:00
chrisndodge
7868067879 Merge pull request #9744 from edx/cdodge/timed-exams
Timed Exams
2015-10-30 11:03:59 -04:00
Muhammad Shoaib
9476898df0 Add Timed Exams as a feature to edx-platform 2015-10-30 08:44:33 -04:00
David Ormsbee
9b88bdb072 Changes to handler URL generation
* The LMS now also monkey-patches
  xmodule.x_module.descriptor_global_handler_url and
  xmodule.x_module.descriptor_global_local_resource_url so that we can
  get LMS XBlock URLs from the DescriptorSystem. That functionality is
  needed in the block transforms collect() phase for certain XModules
  like Video. For instance, say we want to generate the transcripts
  URLs. The collect phase is run asynchronously, without a user context.

* The URL handler monkey-patching is now done in the startup.py files
  for LMS and Studio. Studio used to do this in the import of
  cms/djangoapps/contentstore/views/item.py. This was mostly just
  because it seemed like a sane and consistent place to put it.

* LmsHandlerUrls was removed, its handler_url and local_resource_url
  methods were moved to be top level functions. The only reason that
  class existed seems to be to give a place to store course_id state,
  and that can now be derived from the block location.

* To avoid the Module -> Descriptor ProxyAttribute magic that we do
  (which explodes with an UndefinedContext error because there is no
  user involved), when examining the block's handler method in
  handler_url, I made a few changes:

** Check the .__class__ to see if the handler was defined, instead of the
   block itself.

** The above required me to relax the check for _is_xblock_handler on the
   function, since that will no longer be defined.

90% of this goes away when we kill XModules and do the refactoring we've
wanted to do for a while.
2015-10-28 09:42:59 -04:00
Bill DeRusha
bcb71a3255 Rename SEGMENT_KEY to have a unique key name for both CMS and LMS 2015-10-01 19:40:27 -04:00
Bill DeRusha
a6873cb883 Merge pull request #9875 from edx/bderusha/segment-cleanup
Segment Clean Up
2015-09-29 10:33:03 -04:00
Bill DeRusha
14e1ef13fe Merge pull request #9865 from edx/bderusha/segment-version-bump
Bump version of segemnt's analytics-python package to 1.1.0
2015-09-29 09:33:49 -04:00
Brian Beggs
d9de52751d Merge remote-tracking branch 'origin/release' into bbeggs/2015-09-22-release-to-master 2015-09-28 20:58:34 -04:00
Ben Patterson
2fd6add524 Revert "Merge DRF 3.1 in to master" 2015-09-28 17:12:43 -04:00
Will Daly
d11ccad0fc Upgrade djangorestframework to v3.1
* Upgrade edx-submissions
* Upgrade edx-ora2
* Upgrade edx-val
* Upgrade edx-proctoring
* Update all edx-platform code that depends on DRF, including:
  - auth_exchange
  - cors_csrf
  - embargo
  - enrollment
  - util
  - commerce
  - course_structure
  - discussion_api
  - mobile_api
  - notifier_api
  - teams
  - credit
  - profile_images
  - user_api
  - lib/api (OAuth2 and pagination)
2015-09-28 11:52:30 -04:00
Will Daly
8555630df7 Upgrade djangorestframework to v3.1
* Upgrade edx-submissions
* Upgrade edx-ora2
* Upgrade edx-val
* Upgrade edx-proctoring
* Update all edx-platform code that depends on DRF, including:
  - auth_exchange
  - cors_csrf
  - embargo
  - enrollment
  - util
  - commerce
  - course_structure
  - discussion_api
  - mobile_api
  - notifier_api
  - teams
  - credit
  - profile_images
  - user_api
  - lib/api (OAuth2 and pagination)
2015-09-25 12:40:57 -04:00
Bill DeRusha
c721ff5a82 Replace SEGMENT_IO_LMS & SEGMENT_IO_LMS_KEY with single key SEGMENT_KEY 2015-09-24 11:49:03 -04:00
Bill DeRusha
4f14d4f75b Bump version of segemnt's analytics-python package to 1.1.0
Wrap 3rd Party Auth Pipeline with Segment enabled checks
2015-09-24 11:27:24 -04:00
David Baumgold
6ebf2515f4 Comprehensive theming
This is a squash of 38 commits ending with
5b080f979d692804452400ac5bed9b17c50b001e
2015-09-17 15:39:03 -04:00
Chris Dodge
6cf5516a84 Integration of edx_proctoring into the LMS 2015-08-13 19:08:50 -04:00
Sarina Canelake
39d3537410 Pylint logging-format-interpolation: Convert logging calls to use %s formatting 2015-07-13 17:33:29 -04:00
Braden MacDonald
b4904adc1e Use ConfigurationModels for third_party_auth, new metadata fetching - PR 8155 2015-06-26 13:23:59 -07:00
Adam Palay
d9a21bdf4d use email context for keyword substitution, cutting down on db queries (TNL-1591) 2015-04-08 11:22:26 -04:00
Ned Batchelder
a84735057d Move common/lib/*.py to openedx/core/lib
This makes these files importable, and puts them into the new best guess
as to where files should live.
2015-03-23 12:40:24 -04:00
njdup
32bbb0e71a Implements keyword sub feature for bulk emails
This commit pulls in changes from #4487 that implements keyword
substitution for bulk emails. With these changes, an instructor can
include keywords in their bulk emails which will be automatically substituted
with the corresponding value for the recepient of the email. Keywords are
of the form %%keyword%%, and the keywords implemented in this commit include:

%%USER_ID%% => anonymous_user_id
%%USER_FULLNAME%% => user profile name
%%COURSE_DISPLAY_NAME%% => display name of the course
%%COURSE_END_DATE%% => end date of the course

Client-side validations have also been implemented to ensure that only emails
with well-formed keywords can be sent.
The architecture is designed such that adding in new keywords in the future
would be relatively straight-forward.
2014-12-11 15:03:29 -08:00
Sarina Canelake
3c364193bb s/pylint: disable=W0104/pylint: disable=pointless-statement/ 2014-12-01 11:22:12 -05:00
Sarina Canelake
725e4908e3 Remove more pep8 violations 2014-11-04 07:37:41 -05:00
Usman Khalid
32c6dad526 Moved imports to manage.py and wsgi.py. 2014-10-14 18:27:31 +05:00
Usman Khalid
fc895fe8bf Moved imports to startup.py. 2014-09-11 20:14:37 +05:00
Julia Hansbrough
c7d4183310 Merge pull request #4915 from edx/flowerhack/redo-third-party
Facebook auth support.
2014-08-30 02:50:57 -04:00
Julia Hansbrough
fd925e8970 Add server-side analytics logging for login
Also, removed the client-side analytics for logging in.
Ensures that analytics are collected for third-party-auth logins.
Fixed failing tests related to third-party-auth.
2014-08-29 19:49:42 +00:00
stv
86633df3db Monkey patch 'django.utils.translation'
Modify Django's translation library, such that the gettext family of
functions return an empty string when attempting to translate a
falsey value. This overrides the default behavior [0]:
> It is convention with GNU gettext to include meta-data as the
> translation for the empty string.

This patch provides a holistic solution to replace the current piecemeal
approach [1][2].

Affected Methods:
    - gettext
    - ugettext

[0] https://docs.python.org/2.7/library/gettext.html#the-gnutranslations-class
[1] bad803e451
[2] https://github.com/edx/edx-platform/pull/4653
2014-08-27 15:27:34 -07:00
Renzo Lucioni
3599e2eec7 Revert "Revert "Merge pull request #4545 from edx/renzo/bi-analytics-overhaul""
This reverts commit 079808ee47.
2014-07-30 17:01:52 -04:00
Julia Hansbrough
079808ee47 Revert "Merge pull request #4545 from edx/renzo/bi-analytics-overhaul"
This reverts commit 252038c376, reversing
changes made to 7caf8c53b1.
2014-07-29 17:41:46 +00:00
Renzo Lucioni
252038c376 Merge pull request #4545 from edx/renzo/bi-analytics-overhaul
Overhaul Segment.io integration
2014-07-28 11:59:58 -04:00
Renzo Lucioni
8bd84b5f3a Overhaul Segment.io integration 2014-07-28 11:08:02 -04:00
Kevin Luo
9b3b2e72a2 Add support for theme translations and LANGUAGE_DICT override 2014-07-24 04:39:38 -07:00
Alan Boudreault
031ac9852e Add mimetype additions in studio startup 2014-05-29 11:44:14 -04:00
Alan Boudreault
57025cd5e6 Add missing mimetypes for xblock resources 2014-05-29 11:14:00 -04:00
Calen Pennington
c54972e855 Fix bad interaction between pluggable InputTypes and Microsites
Pluggable InputTypes use edxmako.paths.add_lookup to inject new
mako template directories. Those were getting clobbered by microsites
(and by theming), which were completely rebuilding the mako template
lookup list from scratch.

This commit switches those two features to use the same add_lookup
function as pluggable InputTypes.

[LMS-2489]
2014-04-01 16:49:15 -04:00
John Cox
8ecfa8679a Add common/djangoapps/third_party_auth; update pylintrc to allow test_* names.
third_party_auth contains a working settings mechanism, the start of the provider interface + 3 implementations (Google, Mozilla Persona, LinkedIn), and a stub for the auth pipeline. Modified existing lms settings files to use but deactivate the module.
2014-03-06 17:20:58 -08:00
Chris Dodge
aa43689a93 This PR addresses the open feedback on the Microsites feature 2014-02-28 16:27:12 -05:00
David Baumgold
a93ef64a68 Merge pull request #2454 from ionis-education-group/theme-template-paths
Prepend theme template paths
2014-02-07 09:25:34 -05:00
Bertrand Marron
b758c89e4a Prepend theme template paths
Allow templates override.
2014-02-04 16:18:04 +01:00
Calen Pennington
7c758ec982 Don't force modulestore initialization when running lms manage.py, only when running via the wsgi file 2014-01-24 16:41:41 -05:00
Jason Bau
6560c4faf8 small bugfixes for theming+sass+templates
change ruby and to &&
2014-01-13 15:28:35 -08:00
Jason Bau
eb15355b74 Revert "small bugfixes for theming+sass+templates"
This reverts commit 5f3313ece4.
2014-01-13 14:35:24 -08:00
Jason Bau
5f3313ece4 small bugfixes for theming+sass+templates 2014-01-10 16:36:23 -08:00