Skip to content

Commit

Permalink
Final stage of POC -> CCX rename
Browse files Browse the repository at this point in the history
remove pocs migrations

Final massive renaming, including models.  Re-built migration.

cleaning up a few tailing references
  • Loading branch information
cewing committed Feb 5, 2015
1 parent 45e8294 commit bfaba7b
Show file tree
Hide file tree
Showing 41 changed files with 451 additions and 620 deletions.
10 changes: 5 additions & 5 deletions common/djangoapps/student/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -664,8 +664,8 @@ def dashboard(request):

ccx_membership_triplets = []
if settings.FEATURES.get('CUSTOM_COURSES_EDX', False):
from pocs import ACTIVE_CCX_KEY
from pocs.utils import get_ccx_membership_triplets
from ccx import ACTIVE_CCX_KEY
from ccx.utils import get_ccx_membership_triplets
ccx_membership_triplets = get_ccx_membership_triplets(
user, course_org_filter, org_filter_out_set
)
Expand Down Expand Up @@ -1870,13 +1870,13 @@ def activate_account(request, key):

# enroll student in any pending CCXs he/she may have if auto_enroll flag is set
if settings.FEATURES.get('CUSTOM_COURSES_EDX'):
from pocs.models import PocMembership, PocFutureMembership
pfms = PocFutureMembership.objects.filter(
from ccx.models import CcxMembership, CcxFutureMembership
pfms = CcxFutureMembership.objects.filter(
email=student[0].email
)
for pfm in pfms:
if pfm.auto_enroll:
PocMembership.auto_enroll(student[0], pfm)
CcxMembership.auto_enroll(student[0], pfm)

resp = render_to_response(
"registration/activation_complete.html",
Expand Down
2 changes: 1 addition & 1 deletion common/lib/xmodule/xmodule/tabs.py
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ def __init__(self, tab_dict=None):

def can_display(self, course, settings, is_user_authenticated, is_user_staff, is_user_enrolled):
if settings.FEATURES.get('CUSTOM_COURSES_EDX', False):
from pocs.overrides import get_current_ccx
from ccx.overrides import get_current_ccx
if get_current_ccx():
return False
super_can_display = super(DiscussionTab, self).can_display(
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -8,49 +8,62 @@
class Migration(SchemaMigration):

def forwards(self, orm):
# Adding model 'PersonalOnlineCourse'
db.create_table('pocs_personalonlinecourse', (
# Adding model 'CustomCourseForEdX'
db.create_table('ccx_customcourseforedx', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('course_id', self.gf('xmodule_django.models.CourseKeyField')(max_length=255, db_index=True)),
('display_name', self.gf('django.db.models.fields.CharField')(max_length=255)),
('coach', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
))
db.send_create_signal('pocs', ['PersonalOnlineCourse'])
db.send_create_signal('ccx', ['CustomCourseForEdX'])

# Adding model 'PocMembership'
db.create_table('pocs_pocmembership', (
# Adding model 'CcxMembership'
db.create_table('ccx_ccxmembership', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('poc', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['pocs.PersonalOnlineCourse'])),
('ccx', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ccx.CustomCourseForEdX'])),
('student', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
('active', self.gf('django.db.models.fields.BooleanField')(default=False)),
))
db.send_create_signal('pocs', ['PocMembership'])
db.send_create_signal('ccx', ['CcxMembership'])

# Adding model 'PocFieldOverride'
db.create_table('pocs_pocfieldoverride', (
# Adding model 'CcxFutureMembership'
db.create_table('ccx_ccxfuturemembership', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('poc', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['pocs.PersonalOnlineCourse'])),
('ccx', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ccx.CustomCourseForEdX'])),
('email', self.gf('django.db.models.fields.CharField')(max_length=255)),
('auto_enroll', self.gf('django.db.models.fields.BooleanField')(default=False)),
))
db.send_create_signal('ccx', ['CcxFutureMembership'])

# Adding model 'CcxFieldOverride'
db.create_table('ccx_ccxfieldoverride', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('ccx', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ccx.CustomCourseForEdX'])),
('location', self.gf('xmodule_django.models.LocationKeyField')(max_length=255, db_index=True)),
('field', self.gf('django.db.models.fields.CharField')(max_length=255)),
('value', self.gf('django.db.models.fields.TextField')(default='null')),
))
db.send_create_signal('pocs', ['PocFieldOverride'])
db.send_create_signal('ccx', ['CcxFieldOverride'])

# Adding unique constraint on 'PocFieldOverride', fields ['poc', 'location', 'field']
db.create_unique('pocs_pocfieldoverride', ['poc_id', 'location', 'field'])
# Adding unique constraint on 'CcxFieldOverride', fields ['ccx', 'location', 'field']
db.create_unique('ccx_ccxfieldoverride', ['ccx_id', 'location', 'field'])


def backwards(self, orm):
# Removing unique constraint on 'PocFieldOverride', fields ['poc', 'location', 'field']
db.delete_unique('pocs_pocfieldoverride', ['poc_id', 'location', 'field'])
# Removing unique constraint on 'CcxFieldOverride', fields ['ccx', 'location', 'field']
db.delete_unique('ccx_ccxfieldoverride', ['ccx_id', 'location', 'field'])

# Deleting model 'CustomCourseForEdX'
db.delete_table('ccx_customcourseforedx')

# Deleting model 'PersonalOnlineCourse'
db.delete_table('pocs_personalonlinecourse')
# Deleting model 'CcxMembership'
db.delete_table('ccx_ccxmembership')

# Deleting model 'PocMembership'
db.delete_table('pocs_pocmembership')
# Deleting model 'CcxFutureMembership'
db.delete_table('ccx_ccxfuturemembership')

# Deleting model 'PocFieldOverride'
db.delete_table('pocs_pocfieldoverride')
# Deleting model 'CcxFieldOverride'
db.delete_table('ccx_ccxfieldoverride')


models = {
Expand Down Expand Up @@ -83,34 +96,42 @@ def backwards(self, orm):
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
},
'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'ccx.ccxfieldoverride': {
'Meta': {'unique_together': "(('ccx', 'location', 'field'),)", 'object_name': 'CcxFieldOverride'},
'ccx': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ccx.CustomCourseForEdX']"}),
'field': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
'location': ('xmodule_django.models.LocationKeyField', [], {'max_length': '255', 'db_index': 'True'}),
'value': ('django.db.models.fields.TextField', [], {'default': "'null'"})
},
'ccx.ccxfuturemembership': {
'Meta': {'object_name': 'CcxFutureMembership'},
'auto_enroll': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'ccx': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ccx.CustomCourseForEdX']"}),
'email': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
},
'pocs.personalonlinecourse': {
'Meta': {'object_name': 'PersonalOnlineCourse'},
'ccx.ccxmembership': {
'Meta': {'object_name': 'CcxMembership'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'ccx': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ccx.CustomCourseForEdX']"}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'student': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
},
'ccx.customcourseforedx': {
'Meta': {'object_name': 'CustomCourseForEdX'},
'coach': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}),
'course_id': ('xmodule_django.models.CourseKeyField', [], {'max_length': '255', 'db_index': 'True'}),
'display_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
},
'pocs.pocfieldoverride': {
'Meta': {'unique_together': "(('poc', 'location', 'field'),)", 'object_name': 'PocFieldOverride'},
'field': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'location': ('xmodule_django.models.LocationKeyField', [], {'max_length': '255', 'db_index': 'True'}),
'poc': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['pocs.PersonalOnlineCourse']"}),
'value': ('django.db.models.fields.TextField', [], {'default': "'null'"})
},
'pocs.pocmembership': {
'Meta': {'object_name': 'PocMembership'},
'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'poc': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['pocs.PersonalOnlineCourse']"}),
'student': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
}
}

complete_apps = ['pocs']
complete_apps = ['ccx']
File renamed without changes.
20 changes: 10 additions & 10 deletions lms/djangoapps/pocs/models.py → lms/djangoapps/ccx/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from xmodule_django.models import CourseKeyField, LocationKeyField


class PersonalOnlineCourse(models.Model):
class CustomCourseForEdX(models.Model):
"""
A Personal Online Course.
"""
Expand All @@ -14,11 +14,11 @@ class PersonalOnlineCourse(models.Model):
coach = models.ForeignKey(User, db_index=True)


class PocMembership(models.Model):
class CcxMembership(models.Model):
"""
Which students are in a CCX?
"""
poc = models.ForeignKey(PersonalOnlineCourse, db_index=True)
ccx = models.ForeignKey(CustomCourseForEdX, db_index=True)
student = models.ForeignKey(User, db_index=True)
active = models.BooleanField(default=False)

Expand All @@ -30,11 +30,11 @@ def auto_enroll(cls, student, future_membership):
msg = "auto enrollment not allowed for {}"
raise ValueError(msg.format(future_membership))
membership = cls(
poc=future_membership.poc, student=student, active=True
ccx=future_membership.ccx, student=student, active=True
)
try:
CourseEnrollment.enroll(
student, future_membership.poc.course_id, check_access=True
student, future_membership.ccx.course_id, check_access=True
)
except AlreadyEnrolledError:
# if the user is already enrolled in the course, great!
Expand All @@ -48,24 +48,24 @@ def memberships_for_user(cls, user, active=True):
return cls.objects.filter(student=user, active__exact=active)


class PocFutureMembership(models.Model):
class CcxFutureMembership(models.Model):
"""
Which emails for non-users are waiting to be added to CCX on registration
"""
poc = models.ForeignKey(PersonalOnlineCourse, db_index=True)
ccx = models.ForeignKey(CustomCourseForEdX, db_index=True)
email = models.CharField(max_length=255)
auto_enroll = models.BooleanField(default=0)


class PocFieldOverride(models.Model):
class CcxFieldOverride(models.Model):
"""
Field overrides for personal online courses.
"""
poc = models.ForeignKey(PersonalOnlineCourse, db_index=True)
ccx = models.ForeignKey(CustomCourseForEdX, db_index=True)
location = LocationKeyField(max_length=255, db_index=True)
field = models.CharField(max_length=255)

class Meta:
unique_together = (('poc', 'location', 'field'),)
unique_together = (('ccx', 'location', 'field'),)

value = models.TextField(default='null')
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
from contextlib import contextmanager

from courseware.field_overrides import FieldOverrideProvider
from pocs import ACTIVE_CCX_KEY
from ccx import ACTIVE_CCX_KEY

from .models import PocMembership, PocFieldOverride
from .models import CcxMembership, CcxFieldOverride


class CustomCoursesForEdxOverrideProvider(FieldOverrideProvider):
Expand Down Expand Up @@ -81,8 +81,8 @@ def _get_overrides_for_ccx(ccx, block):
overrides set on this block for this CCX.
"""
overrides = {}
query = PocFieldOverride.objects.filter(
poc=ccx,
query = CcxFieldOverride.objects.filter(
ccx=ccx,
location=block.location
)
for override in query:
Expand All @@ -98,8 +98,8 @@ def override_field_for_ccx(ccx, block, name, value):
and the name of the field on that block to override. `value` is the
value to set for the given field.
"""
override, created = PocFieldOverride.objects.get_or_create(
poc=ccx,
override, created = CcxFieldOverride.objects.get_or_create(
ccx=ccx,
location=block.location,
field=name)
field = block.fields[name]
Expand All @@ -118,15 +118,15 @@ def clear_override_for_ccx(ccx, block, name):
performed.
"""
try:
PocFieldOverride.objects.get(
poc=ccx,
CcxFieldOverride.objects.get(
ccx=ccx,
location=block.location,
field=name).delete()

if hasattr(block, '_ccx_overrides'):
del block._ccx_overrides[ccx.id]

except PocFieldOverride.DoesNotExist:
except CcxFieldOverride.DoesNotExist:
pass


Expand All @@ -142,11 +142,11 @@ def process_request(self, request):
ccx_id = request.session.get(ACTIVE_CCX_KEY, None)
if ccx_id is not None:
try:
membership = PocMembership.objects.get(
student=request.user, active=True, poc__id__exact=ccx_id
membership = CcxMembership.objects.get(
student=request.user, active=True, ccx__id__exact=ccx_id
)
_CCX_CONTEXT.ccx = membership.poc
except PocMembership.DoesNotExist:
_CCX_CONTEXT.ccx = membership.ccx
except CcxMembership.DoesNotExist:
# if there is no membership, be sure to unset the active ccx
_CCX_CONTEXT.ccx = None
request.session.pop(ACTIVE_CCX_KEY)
Expand Down
File renamed without changes.
18 changes: 18 additions & 0 deletions lms/djangoapps/ccx/tests/factories.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from factory.django import DjangoModelFactory
from ccx.models import CustomCourseForEdX
from ccx.models import CcxMembership
from ccx.models import CcxFutureMembership


class CcxFactory(DjangoModelFactory):
FACTORY_FOR = CustomCourseForEdX
display_name = "Test CCX"


class CcxMembershipFactory(DjangoModelFactory):
FACTORY_FOR = CcxMembership
active = False


class CcxFutureMembershipFactory(DjangoModelFactory):
FACTORY_FOR = CcxFutureMembership
Loading

0 comments on commit bfaba7b

Please sign in to comment.