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
71ce4d07
Commit
71ce4d07
authored
Jul 09, 2015
by
zubair-arbi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add 'provider_description' field for CreditProvider model
ECOM-1842
parent
8a65167d
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
168 additions
and
0 deletions
+168
-0
openedx/core/djangoapps/credit/api/provider.py
+2
-0
openedx/core/djangoapps/credit/migrations/0015_auto__add_field_creditprovider_provider_description.py
+156
-0
openedx/core/djangoapps/credit/models.py
+7
-0
openedx/core/djangoapps/credit/tests/test_api.py
+3
-0
No files found.
openedx/core/djangoapps/credit/api/provider.py
View file @
71ce4d07
...
...
@@ -65,6 +65,7 @@ def get_credit_provider_info(provider_id):
"display_name": "Hogwarts School of Witchcraft and Wizardry",
"provider_url": "https://credit.example.com/",
"provider_status_url": "https://credit.example.com/status/",
"provider_description: "A new model for the Witchcraft and Wizardry School System.",
"enable_integration": False,
"fulfillment_instructions": "
<p>In order to fulfill credit, Hogwarts School of Witchcraft and Wizardry requires learners to:</p>
...
...
@@ -83,6 +84,7 @@ def get_credit_provider_info(provider_id):
"display_name"
:
credit_provider
.
display_name
,
"provider_url"
:
credit_provider
.
provider_url
,
"provider_status_url"
:
credit_provider
.
provider_status_url
,
"provider_description"
:
credit_provider
.
provider_description
,
"enable_integration"
:
credit_provider
.
enable_integration
,
"fulfillment_instructions"
:
credit_provider
.
fulfillment_instructions
}
...
...
openedx/core/djangoapps/credit/migrations/0015_auto__add_field_creditprovider_provider_description.py
0 → 100644
View file @
71ce4d07
# -*- coding: utf-8 -*-
from
south.utils
import
datetime_utils
as
datetime
from
south.db
import
db
from
south.v2
import
SchemaMigration
from
django.db
import
models
class
Migration
(
SchemaMigration
):
def
forwards
(
self
,
orm
):
# Adding field 'CreditProvider.provider_description'
db
.
add_column
(
'credit_creditprovider'
,
'provider_description'
,
self
.
gf
(
'django.db.models.fields.TextField'
)(
default
=
''
),
keep_default
=
False
)
def
backwards
(
self
,
orm
):
# Deleting field 'CreditProvider.provider_description'
db
.
delete_column
(
'credit_creditprovider'
,
'provider_description'
)
models
=
{
'auth.group'
:
{
'Meta'
:
{
'object_name'
:
'Group'
},
'id'
:
(
'django.db.models.fields.AutoField'
,
[],
{
'primary_key'
:
'True'
}),
'name'
:
(
'django.db.models.fields.CharField'
,
[],
{
'unique'
:
'True'
,
'max_length'
:
'80'
}),
'permissions'
:
(
'django.db.models.fields.related.ManyToManyField'
,
[],
{
'to'
:
"orm['auth.Permission']"
,
'symmetrical'
:
'False'
,
'blank'
:
'True'
})
},
'auth.permission'
:
{
'Meta'
:
{
'ordering'
:
"('content_type__app_label', 'content_type__model', 'codename')"
,
'unique_together'
:
"(('content_type', 'codename'),)"
,
'object_name'
:
'Permission'
},
'codename'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'100'
}),
'content_type'
:
(
'django.db.models.fields.related.ForeignKey'
,
[],
{
'to'
:
"orm['contenttypes.ContentType']"
}),
'id'
:
(
'django.db.models.fields.AutoField'
,
[],
{
'primary_key'
:
'True'
}),
'name'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'50'
})
},
'auth.user'
:
{
'Meta'
:
{
'object_name'
:
'User'
},
'date_joined'
:
(
'django.db.models.fields.DateTimeField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'email'
:
(
'django.db.models.fields.EmailField'
,
[],
{
'max_length'
:
'75'
,
'blank'
:
'True'
}),
'first_name'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'30'
,
'blank'
:
'True'
}),
'groups'
:
(
'django.db.models.fields.related.ManyToManyField'
,
[],
{
'to'
:
"orm['auth.Group']"
,
'symmetrical'
:
'False'
,
'blank'
:
'True'
}),
'id'
:
(
'django.db.models.fields.AutoField'
,
[],
{
'primary_key'
:
'True'
}),
'is_active'
:
(
'django.db.models.fields.BooleanField'
,
[],
{
'default'
:
'True'
}),
'is_staff'
:
(
'django.db.models.fields.BooleanField'
,
[],
{
'default'
:
'False'
}),
'is_superuser'
:
(
'django.db.models.fields.BooleanField'
,
[],
{
'default'
:
'False'
}),
'last_login'
:
(
'django.db.models.fields.DateTimeField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'last_name'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'30'
,
'blank'
:
'True'
}),
'password'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'128'
}),
'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'
}),
'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'
})
},
'credit.creditcourse'
:
{
'Meta'
:
{
'object_name'
:
'CreditCourse'
},
'course_key'
:
(
'xmodule_django.models.CourseKeyField'
,
[],
{
'unique'
:
'True'
,
'max_length'
:
'255'
,
'db_index'
:
'True'
}),
'enabled'
:
(
'django.db.models.fields.BooleanField'
,
[],
{
'default'
:
'False'
}),
'id'
:
(
'django.db.models.fields.AutoField'
,
[],
{
'primary_key'
:
'True'
})
},
'credit.crediteligibility'
:
{
'Meta'
:
{
'unique_together'
:
"(('username', 'course'),)"
,
'object_name'
:
'CreditEligibility'
},
'course'
:
(
'django.db.models.fields.related.ForeignKey'
,
[],
{
'related_name'
:
"'eligibilities'"
,
'to'
:
"orm['credit.CreditCourse']"
}),
'created'
:
(
'model_utils.fields.AutoCreatedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'deadline'
:
(
'django.db.models.fields.DateTimeField'
,
[],
{
'default'
:
'datetime.datetime(2016, 7, 8, 0, 0)'
}),
'id'
:
(
'django.db.models.fields.AutoField'
,
[],
{
'primary_key'
:
'True'
}),
'modified'
:
(
'model_utils.fields.AutoLastModifiedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'username'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'255'
,
'db_index'
:
'True'
})
},
'credit.creditprovider'
:
{
'Meta'
:
{
'object_name'
:
'CreditProvider'
},
'active'
:
(
'django.db.models.fields.BooleanField'
,
[],
{
'default'
:
'True'
}),
'created'
:
(
'model_utils.fields.AutoCreatedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'display_name'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'255'
}),
'enable_integration'
:
(
'django.db.models.fields.BooleanField'
,
[],
{
'default'
:
'False'
}),
'fulfillment_instructions'
:
(
'django.db.models.fields.TextField'
,
[],
{
'null'
:
'True'
,
'blank'
:
'True'
}),
'id'
:
(
'django.db.models.fields.AutoField'
,
[],
{
'primary_key'
:
'True'
}),
'modified'
:
(
'model_utils.fields.AutoLastModifiedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'provider_description'
:
(
'django.db.models.fields.TextField'
,
[],
{
'default'
:
"''"
}),
'provider_id'
:
(
'django.db.models.fields.CharField'
,
[],
{
'unique'
:
'True'
,
'max_length'
:
'255'
}),
'provider_status_url'
:
(
'django.db.models.fields.URLField'
,
[],
{
'default'
:
"''"
,
'max_length'
:
'200'
}),
'provider_url'
:
(
'django.db.models.fields.URLField'
,
[],
{
'default'
:
"''"
,
'max_length'
:
'200'
})
},
'credit.creditrequest'
:
{
'Meta'
:
{
'unique_together'
:
"(('username', 'course', 'provider'),)"
,
'object_name'
:
'CreditRequest'
},
'course'
:
(
'django.db.models.fields.related.ForeignKey'
,
[],
{
'related_name'
:
"'credit_requests'"
,
'to'
:
"orm['credit.CreditCourse']"
}),
'created'
:
(
'model_utils.fields.AutoCreatedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'id'
:
(
'django.db.models.fields.AutoField'
,
[],
{
'primary_key'
:
'True'
}),
'modified'
:
(
'model_utils.fields.AutoLastModifiedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'parameters'
:
(
'jsonfield.fields.JSONField'
,
[],
{}),
'provider'
:
(
'django.db.models.fields.related.ForeignKey'
,
[],
{
'related_name'
:
"'credit_requests'"
,
'to'
:
"orm['credit.CreditProvider']"
}),
'status'
:
(
'django.db.models.fields.CharField'
,
[],
{
'default'
:
"'pending'"
,
'max_length'
:
'255'
}),
'username'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'255'
,
'db_index'
:
'True'
}),
'uuid'
:
(
'django.db.models.fields.CharField'
,
[],
{
'unique'
:
'True'
,
'max_length'
:
'32'
,
'db_index'
:
'True'
})
},
'credit.creditrequirement'
:
{
'Meta'
:
{
'unique_together'
:
"(('namespace', 'name', 'course'),)"
,
'object_name'
:
'CreditRequirement'
},
'active'
:
(
'django.db.models.fields.BooleanField'
,
[],
{
'default'
:
'True'
}),
'course'
:
(
'django.db.models.fields.related.ForeignKey'
,
[],
{
'related_name'
:
"'credit_requirements'"
,
'to'
:
"orm['credit.CreditCourse']"
}),
'created'
:
(
'model_utils.fields.AutoCreatedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'criteria'
:
(
'jsonfield.fields.JSONField'
,
[],
{}),
'display_name'
:
(
'django.db.models.fields.CharField'
,
[],
{
'default'
:
"''"
,
'max_length'
:
'255'
}),
'id'
:
(
'django.db.models.fields.AutoField'
,
[],
{
'primary_key'
:
'True'
}),
'modified'
:
(
'model_utils.fields.AutoLastModifiedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'name'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'255'
}),
'namespace'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'255'
}),
'order'
:
(
'django.db.models.fields.PositiveIntegerField'
,
[],
{
'default'
:
'0'
})
},
'credit.creditrequirementstatus'
:
{
'Meta'
:
{
'unique_together'
:
"(('username', 'requirement'),)"
,
'object_name'
:
'CreditRequirementStatus'
},
'created'
:
(
'model_utils.fields.AutoCreatedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'id'
:
(
'django.db.models.fields.AutoField'
,
[],
{
'primary_key'
:
'True'
}),
'modified'
:
(
'model_utils.fields.AutoLastModifiedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'reason'
:
(
'jsonfield.fields.JSONField'
,
[],
{
'default'
:
'{}'
}),
'requirement'
:
(
'django.db.models.fields.related.ForeignKey'
,
[],
{
'related_name'
:
"'statuses'"
,
'to'
:
"orm['credit.CreditRequirement']"
}),
'status'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'32'
}),
'username'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'255'
,
'db_index'
:
'True'
})
},
'credit.historicalcreditrequest'
:
{
'Meta'
:
{
'ordering'
:
"(u'-history_date', u'-history_id')"
,
'object_name'
:
'HistoricalCreditRequest'
},
'course'
:
(
'django.db.models.fields.related.ForeignKey'
,
[],
{
'blank'
:
'True'
,
'related_name'
:
"u'+'"
,
'null'
:
'True'
,
'on_delete'
:
'models.DO_NOTHING'
,
'to'
:
"orm['credit.CreditCourse']"
}),
'created'
:
(
'model_utils.fields.AutoCreatedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
u'history_date'
:
(
'django.db.models.fields.DateTimeField'
,
[],
{}),
u'history_id'
:
(
'django.db.models.fields.AutoField'
,
[],
{
'primary_key'
:
'True'
}),
u'history_type'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'1'
}),
u'history_user'
:
(
'django.db.models.fields.related.ForeignKey'
,
[],
{
'related_name'
:
"u'+'"
,
'null'
:
'True'
,
'on_delete'
:
'models.SET_NULL'
,
'to'
:
"orm['auth.User']"
}),
'id'
:
(
'django.db.models.fields.IntegerField'
,
[],
{
'db_index'
:
'True'
,
'blank'
:
'True'
}),
'modified'
:
(
'model_utils.fields.AutoLastModifiedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'parameters'
:
(
'jsonfield.fields.JSONField'
,
[],
{}),
'provider'
:
(
'django.db.models.fields.related.ForeignKey'
,
[],
{
'blank'
:
'True'
,
'related_name'
:
"u'+'"
,
'null'
:
'True'
,
'on_delete'
:
'models.DO_NOTHING'
,
'to'
:
"orm['credit.CreditProvider']"
}),
'status'
:
(
'django.db.models.fields.CharField'
,
[],
{
'default'
:
"'pending'"
,
'max_length'
:
'255'
}),
'username'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'255'
,
'db_index'
:
'True'
}),
'uuid'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'32'
,
'db_index'
:
'True'
})
},
'credit.historicalcreditrequirementstatus'
:
{
'Meta'
:
{
'ordering'
:
"(u'-history_date', u'-history_id')"
,
'object_name'
:
'HistoricalCreditRequirementStatus'
},
'created'
:
(
'model_utils.fields.AutoCreatedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
u'history_date'
:
(
'django.db.models.fields.DateTimeField'
,
[],
{}),
u'history_id'
:
(
'django.db.models.fields.AutoField'
,
[],
{
'primary_key'
:
'True'
}),
u'history_type'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'1'
}),
u'history_user'
:
(
'django.db.models.fields.related.ForeignKey'
,
[],
{
'related_name'
:
"u'+'"
,
'null'
:
'True'
,
'on_delete'
:
'models.SET_NULL'
,
'to'
:
"orm['auth.User']"
}),
'id'
:
(
'django.db.models.fields.IntegerField'
,
[],
{
'db_index'
:
'True'
,
'blank'
:
'True'
}),
'modified'
:
(
'model_utils.fields.AutoLastModifiedField'
,
[],
{
'default'
:
'datetime.datetime.now'
}),
'reason'
:
(
'jsonfield.fields.JSONField'
,
[],
{
'default'
:
'{}'
}),
'requirement'
:
(
'django.db.models.fields.related.ForeignKey'
,
[],
{
'blank'
:
'True'
,
'related_name'
:
"u'+'"
,
'null'
:
'True'
,
'on_delete'
:
'models.DO_NOTHING'
,
'to'
:
"orm['credit.CreditRequirement']"
}),
'status'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'32'
}),
'username'
:
(
'django.db.models.fields.CharField'
,
[],
{
'max_length'
:
'255'
,
'db_index'
:
'True'
})
}
}
complete_apps
=
[
'credit'
]
\ No newline at end of file
openedx/core/djangoapps/credit/models.py
View file @
71ce4d07
...
...
@@ -94,6 +94,13 @@ class CreditProvider(TimeStampedModel):
)
)
provider_description
=
models
.
TextField
(
default
=
""
,
help_text
=
ugettext_lazy
(
"Description for the credit provider displayed to users."
)
)
fulfillment_instructions
=
models
.
TextField
(
null
=
True
,
blank
=
True
,
...
...
openedx/core/djangoapps/credit/tests/test_api.py
View file @
71ce4d07
...
...
@@ -48,6 +48,7 @@ class CreditApiTestBase(TestCase):
PROVIDER_NAME
=
"Hogwarts School of Witchcraft and Wizardry"
PROVIDER_URL
=
"https://credit.example.com/request"
PROVIDER_STATUS_URL
=
"https://credit.example.com/status"
PROVIDER_DESCRIPTION
=
"A new model for the Witchcraft and Wizardry School System."
ENABLE_INTEGRATION
=
True
FULFILLMENT_INSTRUCTIONS
=
"Sample fulfillment instruction for credit completion."
...
...
@@ -64,6 +65,7 @@ class CreditApiTestBase(TestCase):
display_name
=
self
.
PROVIDER_NAME
,
provider_url
=
self
.
PROVIDER_URL
,
provider_status_url
=
self
.
PROVIDER_STATUS_URL
,
provider_description
=
self
.
PROVIDER_DESCRIPTION
,
enable_integration
=
self
.
ENABLE_INTEGRATION
,
fulfillment_instructions
=
self
.
FULFILLMENT_INSTRUCTIONS
)
...
...
@@ -459,6 +461,7 @@ class CreditProviderIntegrationApiTests(CreditApiTestBase):
"display_name"
:
self
.
PROVIDER_NAME
,
"provider_url"
:
self
.
PROVIDER_URL
,
"provider_status_url"
:
self
.
PROVIDER_STATUS_URL
,
"provider_description"
:
self
.
PROVIDER_DESCRIPTION
,
"enable_integration"
:
self
.
ENABLE_INTEGRATION
,
"fulfillment_instructions"
:
self
.
FULFILLMENT_INSTRUCTIONS
}
...
...
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