def explore_groups(request): title = 'groups' gstaff_access = check_is_gstaff(group_id, request.user) if gstaff_access: group_cur = node_collection.find({ '_type': 'Group', 'member_of': gst_group._id }).sort('last_update', -1) else: group_cur = node_collection.find({ '_type': 'Group', 'member_of': gst_group._id, 'name': { '$nin': GSTUDIO_DEFAULT_GROUPS } }).sort('last_update', -1) context_variable = { 'title': title, 'doc_cur': group_cur, 'card': 'ndf/simple_card.html', 'group_id': group_id, 'groupid': group_id } return render_to_response("ndf/explore.html", context_variable, context_instance=RequestContext(request))
def explore_groups(request,page_no=1): title = 'workspaces' gstaff_access = check_is_gstaff(group_id,request.user) query = {'_type': 'Group', 'status': u'PUBLISHED', '$or': [ {'access_policy': u"PUBLIC"}, {'$and': [ {'access_policy': u"PRIVATE"}, {'created_by': request.user.id} ] } ], 'member_of': {'$in': [gst_group._id], '$nin': [gst_course._id, gst_basecoursegroup._id, ce_gst._id, gst_course._id, gst_base_unit_id]}, } if gstaff_access: query.update({'group_type': {'$in': [u'PUBLIC', u'PRIVATE']}}) else: query.update({'name': {'$nin': GSTUDIO_DEFAULT_GROUPS_LIST}, 'group_type': u'PUBLIC'}) group_cur = node_collection.find(query).sort('last_update', -1) grp_page_cur = paginator.Paginator(group_cur, page_no, GSTUDIO_NO_OF_OBJS_PP) context_variable = {'title': title, 'groups_cur': group_cur, 'card': 'ndf/card_group.html', 'group_id': group_id, 'groupid': group_id,'grp_page_cur': grp_page_cur} return render_to_response( "ndf/explore_2017.html", context_variable, context_instance=RequestContext(request))
def explore_drafts(request): title = 'drafts' module_sort_list = None module_sort_list = get_attribute_value(group_id, 'items_sort_list') context_variable = { 'title': title, 'group_id': group_id, 'groupid': group_id, } if module_sort_list: modules_cur = map(Node,module_sort_list) context_variable.update({'modules_is_cur': False}) else: modules_cur = node_collection.find({'member_of': gst_module_id ,'status':'PUBLISHED'}).sort('last_update', -1) context_variable.update({'modules_is_cur': True}) module_unit_ids = [val for each_module in modules_cur for val in each_module.collection_set ] gstaff_access = check_is_gstaff(group_id,request.user) draft_query = {'member_of': gst_base_unit_id, '_id': {'$nin': module_unit_ids}, 'status':'PUBLISHED', } if not gstaff_access: draft_query.update({'$or': [ {'created_by': request.user.id}, {'group_admin': request.user.id}, {'author_set': request.user.id}, # No check on group-type PUBLIC for DraftUnits. # {'group_type': 'PUBLIC'} ]}) base_unit_cur = node_collection.find(draft_query).sort('last_update', -1) # print "\nbase: ", base_unit_cur.count() ''' base_unit_cur = node_collection.find({'member_of': gst_base_unit_id, '_id': {'$nin': module_unit_ids}, 'status':'PUBLISHED', '$or': [ {'created_by': request.user.id}, {'group_admin': request.user.id}, {'author_set': request.user.id}, # {'group_type': 'PUBLIC'} ]}).sort('last_update', -1) ''' # base_unit_page_cur = paginator.Paginator(base_unit_cur, page_no, GSTUDIO_NO_OF_OBJS_PP) # base_unit_page_cur = paginator.Paginator(base_unit_cur, page_no, GSTUDIO_NO_OF_OBJS_PP) context_variable.update({'modules_cur': modules_cur,'units_cur': base_unit_cur}) return render_to_response( # "ndf/explore.html", changed as per new Clix UI "ndf/explore_2017.html", # "ndf/lms_explore.html", context_variable, context_instance=RequestContext(request))
def explore_groups(request,page_no=1): title = 'workspaces' gstaff_access = check_is_gstaff(group_id,request.user) query = {'_type': 'Group', 'status': u'PUBLISHED', 'agency_type':u"School", '$or': [ {'access_policy': u"PUBLIC"}, {'$and': [ {'access_policy': u"PRIVATE"}, {'created_by': request.user.id} ] } ], 'member_of': {'$in': [gst_group._id], '$nin': [gst_course._id, gst_basecoursegroup._id, ce_gst._id, gst_course._id, gst_base_unit_id]}, } if gstaff_access: query.update({'group_type': {'$in': [u'PUBLIC', u'PRIVATE']}}) else: query.update({'name': {'$nin': GSTUDIO_DEFAULT_GROUPS_LIST}, 'group_type': u'PUBLIC'}) group_cur = node_collection.find(query).sort('last_update', -1) grp_page_cur = paginator.Paginator(group_cur, page_no, GSTUDIO_NO_OF_OBJS_PP) context_variable = {'title': title, 'groups_cur': group_cur, 'card': 'ndf/card_group.html', 'group_id': group_id, 'groupid': group_id,'grp_page_cur': grp_page_cur} return render_to_response( "ndf/explore_2017.html", context_variable, context_instance=RequestContext(request))
def savejhapp(request,group_id): from gnowsys_ndf.ndf.views.file import save_file try: group_id = ObjectId(group_id) except: group_name, group_id = get_group_name_id(group_id) jhapp_type = request.POST.getlist("jhapp-type", "") jhapp_type_trim = jhapp_type[0].replace(" ", "") group_obj = node_collection.one({'_id': ObjectId(group_id)}) title = request.POST.get('context_name','') usrid = request.user.id # jsmol_gst = node_collection.one({"_type":"GSystemType","name":"Jsmol" }) sel_jhapp_gst = node_collection.one({"_type":"GSystemType","name":unicode(jhapp_type_trim) }) import zipfile from gnowsys_ndf.ndf.views.filehive import write_files is_user_gstaff = check_is_gstaff(group_obj._id, request.user) fileobj_list = write_files(request, group_id) fileobj_id = fileobj_list[0]['_id'] file_node = node_collection.one({'_id': ObjectId(fileobj_id) }) if sel_jhapp_gst._id: file_node.member_of = [ObjectId(sel_jhapp_gst._id)] uploaded_files = request.FILES.getlist('filehive', []) zip_path = file_node.if_file.original['relurl'] zip_split_path = zip_path.split('.') un_zip_path = zip_path.split('/') file_name = str(uploaded_files[0]).split(".") un_zip_split_path = "/data/media/"+un_zip_path[0] + "/" + un_zip_path[1] + "/" +un_zip_path[2] + "/" with zipfile.ZipFile("/data/media/"+ file_node.if_file.original['relurl'], "r") as z: z.extractall(un_zip_split_path) relurl_path = str("/" + un_zip_path[0] + "/" + un_zip_path[1] + "/" +un_zip_path[2] + "/" + file_name[0] + "/" + "index" + ".html" ) # print "_______________________________",relurl_path discussion_enable_at = node_collection.one({"_type": "AttributeType", "name": "discussion_enable"}) for each_gs_file in fileobj_list: #set interaction-settings each_gs_file.status = u"PUBLISHED" if usrid not in each_gs_file.contributors: each_gs_file.contributors.append(usrid) group_object = node_collection.one({'_id': ObjectId(group_id)}) if (group_object.edit_policy == "EDITABLE_MODERATED") and (group_object.moderation_level > 0): from gnowsys_ndf.ndf.views.moderation import get_moderator_group_set # print "\n\n\n\ninside editable moderated block" each_gs_file.group_set = get_moderator_group_set(each_gs_file.group_set, group_object._id) # print "\n\n\npage_node._id",page_node._id each_gs_file.status = u'MODERATION' # print "\n\n\n page_node.status",page_node.status each_gs_file.save() create_gattribute(each_gs_file._id, discussion_enable_at, True) return_status = create_thread_for_node(request,group_obj._id, each_gs_file) file_node.url = "/data/media/"+ file_node.if_file.original['relurl'] file_node.if_file.original.relurl = relurl_path file_node.if_file.mime_type = u"text/html" file_node.save() return HttpResponseRedirect( reverse('file_detail', kwargs={"group_id": group_id,'_id':fileobj_id}))
def program_event_list(request, group_id): """ * Renders a list of all 'programs' """ try: group_id = ObjectId(group_id) except: group_name, group_id = get_group_name_id(group_id) group_obj = node_collection.one({'_id': ObjectId(group_id)}) course_coll = None enr_ce_coll = [] list_of_pe = [] all_pe = [] pe_gst = node_collection.one({'_type': "GSystemType", 'name': "ProgramEventGroup"}) # program events title = "Events" pe_coll = node_collection.find({'member_of': pe_gst._id}).sort('last_update', -1) for each_pe in pe_coll: list_of_hierarchy = get_prior_node_hierarchy(each_pe._id) if list_of_hierarchy: pe_obj = list_of_hierarchy[len(list_of_hierarchy)-1] if pe_obj not in list_of_pe and pe_obj._id in group_obj.post_node: list_of_pe.append(pe_obj) # print "\n\n list_of_pe",list_of_pe gstaff_access = False if request.user.id: gstaff_access = check_is_gstaff(group_id,request.user) userid = int(request.user.id) for each in list_of_pe: if userid in each.author_set: if each not in enr_ce_coll: enr_ce_coll.append(each) else: all_pe.append(each) else: all_pe = list_of_pe if gstaff_access: all_pe = enr_ce_coll # If request.user is admin, enr_ce_coll is all_pe. # As admin is added in author set of all pe # enr_ce_coll = node_collection.find({'$in': list_of_pe,'author_set': int(request.user.id)}).sort('last_update', -1) # ce_coll = node_collection.find({'member_of': pe_gst._id, 'author_set': {'$ne': int(request.user.id)}}) return render_to_response("ndf/course.html", {'title': title, 'course_gst': pe_gst, 'course_coll': list_of_pe, 'groupid': group_id, 'group_id': group_id, 'ce_coll':all_pe, 'enr_ce_coll':enr_ce_coll, }, context_instance=RequestContext(request) )
def explore_groups(request): title = 'groups' gstaff_access = check_is_gstaff(group_id,request.user) if gstaff_access: group_cur = node_collection.find({'_type': 'Group', 'member_of': gst_group._id}).sort('last_update', -1) else: group_cur = node_collection.find({'_type': 'Group', 'member_of': gst_group._id,'name':{'$nin':GSTUDIO_DEFAULT_GROUPS }}).sort('last_update', -1) context_variable = {'title': title, 'doc_cur': group_cur, 'card': 'ndf/simple_card.html', 'group_id': group_id, 'groupid': group_id} return render_to_response( "ndf/explore.html", context_variable, context_instance=RequestContext(request))
def explore_basecourses(request): gstaff_access = check_is_gstaff(group_id,request.user) if not gstaff_access: return HttpResponseRedirect(reverse('explore_courses')) title = 'base courses' course_cur = node_collection.find({'member_of': gst_course._id}).sort('last_update', -1) context_variable = {'title': title, 'doc_cur': course_cur, 'card': 'ndf/event_card.html', 'group_id': group_id, 'groupid': group_id} return render_to_response( "ndf/explore.html", context_variable, context_instance=RequestContext(request))
def explore_groups(request,page_no=1): from gnowsys_ndf.settings import GSTUDIO_NO_OF_OBJS_PP title = 'groups' gstaff_access = check_is_gstaff(group_id,request.user) if gstaff_access: group_cur = node_collection.find({'_type': 'Group', 'member_of': gst_group._id}).sort('last_update', -1) else: group_cur = node_collection.find({'_type': 'Group', 'member_of': gst_group._id,'name':{'$nin':GSTUDIO_DEFAULT_GROUPS }}).sort('last_update', -1) ce_page_cur = paginator.Paginator(group_cur, page_no, GSTUDIO_NO_OF_OBJS_PP) context_variable = {'title': title, 'doc_cur': group_cur, 'card': 'ndf/simple_card.html', 'group_id': group_id, 'groupid': group_id,'ce_page_cur':ce_page_cur} return render_to_response( "ndf/explore.html", context_variable, context_instance=RequestContext(request))
def explore_basecourses(request,page_no=1): from gnowsys_ndf.settings import GSTUDIO_NO_OF_OBJS_PP gstaff_access = check_is_gstaff(group_id,request.user) if not gstaff_access: return HttpResponseRedirect(reverse('explore_courses')) title = 'base courses' course_cur = node_collection.find({'member_of': gst_course._id}).sort('last_update', -1) ce_page_cur = paginator.Paginator(course_cur, page_no, GSTUDIO_NO_OF_OBJS_PP) context_variable = {'title': title, 'doc_cur': course_cur, 'card': 'ndf/event_card.html', 'group_id': group_id, 'groupid': group_id,'ce_page_cur':ce_page_cur} return render_to_response( "ndf/explore.html", context_variable, context_instance=RequestContext(request))
def explore_basecourses(request): gstaff_access = check_is_gstaff(group_id, request.user) if not gstaff_access: return HttpResponseRedirect(reverse('explore_courses')) title = 'base courses' course_cur = node_collection.find({ 'member_of': gst_course._id }).sort('last_update', -1) context_variable = { 'title': title, 'doc_cur': course_cur, 'card': 'ndf/event_card.html', 'group_id': group_id, 'groupid': group_id } return render_to_response("ndf/explore.html", context_variable, context_instance=RequestContext(request))
def savejhapp(request, group_id): from gnowsys_ndf.ndf.views.file import save_file try: group_id = ObjectId(group_id) except: group_name, group_id = get_group_name_id(group_id) jhapp_type = request.POST.getlist("jhapp-type", "") jhapp_type_trim = jhapp_type[0].replace(" ", "") group_obj = node_collection.one({'_id': ObjectId(group_id)}) title = request.POST.get('context_name', '') usrid = request.user.id # jsmol_gst = node_collection.one({"_type":"GSystemType","name":"Jsmol" }) sel_jhapp_gst = node_collection.one({ "_type": "GSystemType", "name": unicode(jhapp_type_trim) }) import zipfile from gnowsys_ndf.ndf.views.filehive import write_files is_user_gstaff = check_is_gstaff(group_obj._id, request.user) fileobj_list = write_files(request, group_id) fileobj_id = fileobj_list[0]['_id'] file_node = node_collection.one({'_id': ObjectId(fileobj_id)}) if sel_jhapp_gst._id: file_node.member_of = [ObjectId(sel_jhapp_gst._id)] uploaded_files = request.FILES.getlist('filehive', []) zip_path = file_node.if_file.original['relurl'] zip_split_path = zip_path.split('.') un_zip_path = zip_path.split('/') file_name = str(uploaded_files[0]).split(".") un_zip_split_path = "/data/media/" + un_zip_path[0] + "/" + un_zip_path[ 1] + "/" + un_zip_path[2] + "/" with zipfile.ZipFile("/data/media/" + file_node.if_file.original['relurl'], "r") as z: z.extractall(un_zip_split_path) relurl_path = str("/" + un_zip_path[0] + "/" + un_zip_path[1] + "/" + un_zip_path[2] + "/" + file_name[0] + "/" + "index" + ".html") # print "_______________________________",relurl_path discussion_enable_at = node_collection.one({ "_type": "AttributeType", "name": "discussion_enable" }) for each_gs_file in fileobj_list: #set interaction-settings each_gs_file.status = u"PUBLISHED" if usrid not in each_gs_file.contributors: each_gs_file.contributors.append(usrid) group_object = node_collection.one({'_id': ObjectId(group_id)}) if (group_object.edit_policy == "EDITABLE_MODERATED") and ( group_object.moderation_level > 0): from gnowsys_ndf.ndf.views.moderation import get_moderator_group_set # print "\n\n\n\ninside editable moderated block" each_gs_file.group_set = get_moderator_group_set( each_gs_file.group_set, group_object._id) # print "\n\n\npage_node._id",page_node._id each_gs_file.status = u'MODERATION' # print "\n\n\n page_node.status",page_node.status each_gs_file.save() create_gattribute(each_gs_file._id, discussion_enable_at, True) return_status = create_thread_for_node(request, group_obj._id, each_gs_file) file_node.url = "/data/media/" + file_node.if_file.original['relurl'] file_node.if_file.original.relurl = relurl_path file_node.if_file.mime_type = u"text/html" file_node.save() return HttpResponseRedirect( reverse('file_detail', kwargs={ "group_id": group_id, '_id': fileobj_id }))
def module_detail(request, group_id, node_id, title=""): ''' detail of of selected module ''' group_name, group_id = Group.get_group_name_id(group_id) print "in module_detail and group id, title", group_id, title print "node_id", node_id module_obj = Node.get_node_by_id(ObjectId(node_id)) context_variable = { 'group_id': group_id, 'groupid': group_id, 'node': module_obj, 'title': title, 'card': 'ndf/event_card.html', 'card_url_name': 'groupchange' } # module_detail_query = {'member_of': gst_base_unit_id, # '_id': {'$nin': module_unit_ids}, # 'status':'PUBLISHED', # } # if not gstaff_access: # module_detail_query.update({'$or': [ # {'created_by': request.user.id}, # {'group_admin': request.user.id}, # {'author_set': request.user.id}, # # No check on group-type PUBLIC for DraftUnits. # # {'group_type': 'PUBLIC'} # ]}) gstaff_access = check_is_gstaff(group_id, request.user) module_detail_query = { '_id': { '$in': module_obj.collection_set }, 'status': 'PUBLISHED' } ''' if not gstaff_access: module_detail_query.update({'$or': [ {'$and': [ {'member_of': gst_base_unit_id}, {'$or': [ {'created_by': request.user.id}, {'group_admin': request.user.id}, {'author_set': request.user.id}, ]} ]}, {'member_of': gst_announced_unit_id} ]}) ''' primary_lang_tuple = get_language_tuple(GSTUDIO_PRIMARY_COURSE_LANGUAGE) if title == "courses": # module_detail_query.update({'$or': [ # {'$and': [ # {'member_of': {'$in': [gst_announced_unit_id, gst_ce_id]}}, # {'$or': [ # {'created_by': request.user.id}, # {'group_admin': request.user.id}, # {'author_set': request.user.id}, # { # '$and': [ # {'group_type': u'PUBLIC'}, # {'language': primary_lang_tuple}, # ] # }, # ]} # ]}, # #{'member_of': gst_announced_unit_id } # ]}) # # # above can be delete after robust testing of following new query: module_detail_query.update({ 'status': 'PUBLISHED', '$or': [{ 'group_admin': request.user.id }, { 'created_by': request.user.id }, { 'author_set': request.user.id }, { 'member_of': gst_announced_unit_id }, { 'language': primary_lang_tuple, 'group_type': u'PUBLIC', 'member_of': gst_ce_id }] }) if title == "drafts": module_detail_query.update({ '$or': [ { '$and': [{ 'member_of': gst_base_unit_id }, { '$or': [ { 'created_by': request.user.id }, { 'group_admin': request.user.id }, { 'author_set': request.user.id }, ] }] }, ] }) # units_under_module = Node.get_nodes_by_ids_list(module_obj.collection_set) ''' gstaff_access = check_is_gstaff(group_id, request.user) if gstaff_access: module_detail_query.update({'member_of': {'$in': [gst_announced_unit_id, gst_base_unit_id]}}) else: module_detail_query.update({'member_of': gst_announced_unit_id}) ''' units_under_module = node_collection.find(module_detail_query).sort( 'last_update', -1) context_variable.update({'units_under_module': units_under_module}) units_sort_list = get_attribute_value(node_id, 'items_sort_list') from django.core.cache import cache test = cache.get('5945db6e2c4796014abd1784attribute_valueitems_sort_list') print "test:", test if units_sort_list: #print "from attribute:",units_sort_list context_variable.update({'units_sort_list': units_sort_list}) else: print "no items_sort_list" context_variable.update({'units_sort_list': list(units_under_module)}) template = 'ndf/module_detail.html' print "units of selected module", units_sort_list return render_to_response(template, context_variable, context_instance=RequestContext(request))
def module_detail(request, group_id, node_id, title=""): ''' detail of of selected module ''' group_name, group_id = Group.get_group_name_id(group_id) module_obj = Node.get_node_by_id(node_id) # module_detail_query = {'member_of': gst_base_unit_id, # '_id': {'$nin': module_unit_ids}, # 'status':'PUBLISHED', # } # if not gstaff_access: # module_detail_query.update({'$or': [ # {'created_by': request.user.id}, # {'group_admin': request.user.id}, # {'author_set': request.user.id}, # # No check on group-type PUBLIC for DraftUnits. # # {'group_type': 'PUBLIC'} # ]}) gstaff_access = check_is_gstaff(group_id, request.user) module_detail_query = { '_id': { '$in': module_obj.collection_set }, 'status': 'PUBLISHED' } ''' if not gstaff_access: module_detail_query.update({'$or': [ {'$and': [ {'member_of': gst_base_unit_id}, {'$or': [ {'created_by': request.user.id}, {'group_admin': request.user.id}, {'author_set': request.user.id}, ]} ]}, {'member_of': gst_announced_unit_id} ]}) ''' if title == "courses": module_detail_query.update({ '$or': [{ '$and': [{ 'member_of': gst_announced_unit_id }, { '$or': [ { 'created_by': request.user.id }, { 'group_admin': request.user.id }, { 'author_set': request.user.id }, ] }] }, { 'member_of': gst_announced_unit_id }] }) if title == "drafts": print "((((((((((((((((((((((((((" module_detail_query.update({ '$or': [ { '$and': [{ 'member_of': gst_base_unit_id }, { '$or': [ { 'created_by': request.user.id }, { 'group_admin': request.user.id }, { 'author_set': request.user.id }, ] }] }, ] }) # units_under_module = Node.get_nodes_by_ids_list(module_obj.collection_set) ''' gstaff_access = check_is_gstaff(group_id, request.user) if gstaff_access: module_detail_query.update({'member_of': {'$in': [gst_announced_unit_id, gst_base_unit_id]}}) else: module_detail_query.update({'member_of': gst_announced_unit_id}) ''' units_under_module = node_collection.find(module_detail_query).sort( 'last_update', -1) template = 'ndf/module_detail.html' req_context = RequestContext( request, { 'title': title, 'node': module_obj, 'units_under_module': units_under_module, 'group_id': group_id, 'groupid': group_id, 'card': 'ndf/event_card.html', 'card_url_name': 'groupchange' }) return render_to_response(template, req_context)
def program_event_list(request, group_id): """ * Renders a list of all 'programs' """ try: group_id = ObjectId(group_id) except: group_name, group_id = get_group_name_id(group_id) group_obj = node_collection.one({'_id': ObjectId(group_id)}) course_coll = None enr_ce_coll = [] list_of_pe = [] all_pe = [] pe_gst = node_collection.one({ '_type': "GSystemType", 'name': "ProgramEventGroup" }) # program events title = "Events" pe_coll = node_collection.find({ 'member_of': pe_gst._id }).sort('last_update', -1) for each_pe in pe_coll: list_of_hierarchy = get_prior_node_hierarchy(each_pe._id) if list_of_hierarchy: pe_obj = list_of_hierarchy[len(list_of_hierarchy) - 1] if pe_obj not in list_of_pe and pe_obj._id in group_obj.post_node: list_of_pe.append(pe_obj) # print "\n\n list_of_pe",list_of_pe gstaff_access = False if request.user.id: gstaff_access = check_is_gstaff(group_id, request.user) userid = int(request.user.id) for each in list_of_pe: if userid in each.author_set: if each not in enr_ce_coll: enr_ce_coll.append(each) else: all_pe.append(each) else: all_pe = list_of_pe if gstaff_access: all_pe = enr_ce_coll # If request.user is admin, enr_ce_coll is all_pe. # As admin is added in author set of all pe # enr_ce_coll = node_collection.find({'$in': list_of_pe,'author_set': int(request.user.id)}).sort('last_update', -1) # ce_coll = node_collection.find({'member_of': pe_gst._id, 'author_set': {'$ne': int(request.user.id)}}) return render_to_response("ndf/course.html", { 'title': title, 'course_gst': pe_gst, 'course_coll': list_of_pe, 'groupid': group_id, 'group_id': group_id, 'ce_coll': all_pe, 'enr_ce_coll': enr_ce_coll, }, context_instance=RequestContext(request))
def explore_basecourses(request,page_no=1): title = 'courses' # ce_cur = node_collection.find({'member_of': ce_gst._id, # '$or': [ # {'created_by': request.user.id}, # {'group_admin': request.user.id}, # {'author_set': request.user.id}, # {'group_type': 'PUBLIC'} # ]}).sort('last_update', -1) # ce_page_cur = paginator.Paginator(ce_cur, page_no, GSTUDIO_NO_OF_OBJS_PP) # parent_group_name, parent_group_id = Group.get_group_name_id(group_id) ''' ce_cur = node_collection.find({ '_type': 'Group', # 'group_set': {'$in': [parent_group_id]}, 'member_of': {'$in': [gst_base_unit_id]}, '$or':[ {'group_type': u'PUBLIC'}, { '$and': [ {'access_policy': u"PRIVATE"}, {'created_by': request.user.id} ] } ], 'status': u'PUBLISHED' }).sort('last_update', -1) ''' gstaff_access = check_is_gstaff(group_id,request.user) query = {'_type': 'Group', 'status': u'PUBLISHED', 'member_of': {'$in': [gst_base_unit_id]}, } if gstaff_access: query.update({'group_type': u'PRIVATE'}) else: query.update({'group_type': u'PUBLIC'}) if request.user.is_authenticated(): query.update({'$and': [{'group_type': u'PRIVATE'}, {'created_by': request.user.id}]}) ce_cur = node_collection.find(query).sort('last_update', -1) ce_page_cur = paginator.Paginator(ce_cur, page_no, GSTUDIO_NO_OF_OBJS_PP) # print ce_cur.count() title = 'base courses' context_variable = { 'title': title, 'doc_cur': ce_cur, 'group_id': group_id, 'groupid': group_id, 'card': 'ndf/card_group.html', 'ce_page_cur':ce_page_cur } return render_to_response( # "ndf/explore.html", changed as per new Clix UI "ndf/explore_2017.html", context_variable, context_instance=RequestContext(request))
def module_detail(request, group_id, node_id,title=""): ''' detail of of selected module ''' group_name, group_id = Group.get_group_name_id(group_id) module_obj = Node.get_node_by_id(ObjectId(node_id)) context_variable = { 'group_id': group_id, 'groupid': group_id, 'node': module_obj, 'title': title, 'card': 'ndf/event_card.html', 'card_url_name': 'groupchange' } # module_detail_query = {'member_of': gst_base_unit_id, # '_id': {'$nin': module_unit_ids}, # 'status':'PUBLISHED', # } # if not gstaff_access: # module_detail_query.update({'$or': [ # {'created_by': request.user.id}, # {'group_admin': request.user.id}, # {'author_set': request.user.id}, # # No check on group-type PUBLIC for DraftUnits. # # {'group_type': 'PUBLIC'} # ]}) gstaff_access = check_is_gstaff(group_id,request.user) module_detail_query = {'_id': {'$in': module_obj.collection_set}, 'status':'PUBLISHED' } ''' if not gstaff_access: module_detail_query.update({'$or': [ {'$and': [ {'member_of': gst_base_unit_id}, {'$or': [ {'created_by': request.user.id}, {'group_admin': request.user.id}, {'author_set': request.user.id}, ]} ]}, {'member_of': gst_announced_unit_id} ]}) ''' primary_lang_tuple = get_language_tuple(GSTUDIO_PRIMARY_COURSE_LANGUAGE) if title == "courses": module_detail_query.update({'$or': [ {'$and': [ {'member_of': {'$in': [gst_announced_unit_id, gst_ce_id]}}, {'$or': [ {'created_by': request.user.id}, {'group_admin': request.user.id}, {'author_set': request.user.id}, { '$and': [ {'group_type': u'PUBLIC'}, {'language': primary_lang_tuple}, ] }, ]} ]}, #{'member_of': gst_announced_unit_id } ]}) if title == "drafts": module_detail_query.update({'$or': [ {'$and': [ {'member_of': gst_base_unit_id}, {'$or': [ {'created_by': request.user.id}, {'group_admin': request.user.id}, {'author_set': request.user.id}, ]} ]}, ]}) # units_under_module = Node.get_nodes_by_ids_list(module_obj.collection_set) ''' gstaff_access = check_is_gstaff(group_id, request.user) if gstaff_access: module_detail_query.update({'member_of': {'$in': [gst_announced_unit_id, gst_base_unit_id]}}) else: module_detail_query.update({'member_of': gst_announced_unit_id}) ''' units_under_module = node_collection.find(module_detail_query).sort('last_update', -1) context_variable.update({'units_under_module': units_under_module}) units_sort_list = get_attribute_value(node_id, 'items_sort_list') if units_sort_list: context_variable.update({'units_sort_list': units_sort_list}) else: context_variable.update({'units_sort_list': list(units_under_module)}) template = 'ndf/module_detail.html' return render_to_response( template, context_variable, context_instance=RequestContext(request))
def explore_basecourses(request, page_no=1): title = 'courses' # ce_cur = node_collection.find({'member_of': ce_gst._id, # '$or': [ # {'created_by': request.user.id}, # {'group_admin': request.user.id}, # {'author_set': request.user.id}, # {'group_type': 'PUBLIC'} # ]}).sort('last_update', -1) # ce_page_cur = paginator.Paginator(ce_cur, page_no, GSTUDIO_NO_OF_OBJS_PP) # parent_group_name, parent_group_id = Group.get_group_name_id(group_id) ''' ce_cur = node_collection.find({ '_type': 'Group', # 'group_set': {'$in': [parent_group_id]}, 'member_of': {'$in': [gst_base_unit_id]}, '$or':[ {'group_type': u'PUBLIC'}, { '$and': [ {'access_policy': u"PRIVATE"}, {'created_by': request.user.id} ] } ], 'status': u'PUBLISHED' }).sort('last_update', -1) ''' gstaff_access = check_is_gstaff(group_id, request.user) query = { '_type': 'Group', 'status': u'PUBLISHED', 'member_of': { '$in': [gst_base_unit_id] }, } if gstaff_access: query.update({'group_type': u'PRIVATE'}) else: query.update({'group_type': u'PUBLIC'}) if request.user.is_authenticated(): query.update({ '$and': [{ 'group_type': u'PRIVATE' }, { 'created_by': request.user.id }] }) ce_cur = node_collection.find(query).sort('last_update', -1) ce_page_cur = paginator.Paginator(ce_cur, page_no, GSTUDIO_NO_OF_OBJS_PP) # print ce_cur.count() title = 'base courses' context_variable = { 'title': title, 'doc_cur': ce_cur, 'group_id': group_id, 'groupid': group_id, 'card': 'ndf/card_group.html', 'ce_page_cur': ce_page_cur } return render_to_response( # "ndf/explore.html", changed as per new Clix UI "ndf/explore_2017.html", context_variable, context_instance=RequestContext(request))