diff --git a/change-flow-page-type b/change-flow-page-type new file mode 100755 index 0000000000000000000000000000000000000000..a030e52157098c418dc1b88d872079e30120d526 --- /dev/null +++ b/change-flow-page-type @@ -0,0 +1,41 @@ +#! /usr/bin/env python +from __future__ import print_function +import os +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "relate.settings") + +import django +django.setup() + +from course.models import FlowPageData +import sys + +course_identifier = sys.argv[1] +flow_id = sys.argv[2] +group_id = sys.argv[3] +page_id = sys.argv[4] +old_type = sys.argv[5] +new_type = sys.argv[6] + +print("Changing {group_id}/{page_id} in {flow_id} in {course_identifier} " + "from {old_type} to {new_type}".format(**locals())) + +fpages = FlowPageData.objects.filter( + flow_session__course__identifier=course_identifier, + flow_session__flow_id=flow_id, + group_id=group_id, + page_id=page_id) + +print(fpages.filter(flow_session__participation__isnull=False).count(), + "non-anonymous pages") +print(fpages.count(), "pages total") + +raw_input("[Enter to continue]") + +from django.db import transaction +with transaction.atomic(): + for fpd in fpages: + assert fpd.page_type == old_type + print("Changing fpd id %d in %s's session %d" % ( + fpd.id, fpd.flow_session.participation, fpd.flow_session.id)) + fpd.page_type = new_type + fpd.save()