示例#1
0
def view_sheet(request, sheet_id, editorMode = False):
    """
    View the sheet with sheet_id.
    """
    editor = request.GET.get('editor', '0')
    embed = request.GET.get('embed', '0')

    if editor != '1' and embed !='1' and editorMode is False:
        return catchall(request, sheet_id, True)

    sheet_id = int(sheet_id)
    sheet = get_sheet(sheet_id)
    if "error" in sheet and sheet["error"] != "Sheet updated.":
            return HttpResponse(sheet["error"])

    sheet["sources"] = annotate_user_links(sheet["sources"])

    # Count this as a view
    db.sheets.update({"id": sheet_id}, {"$inc": {"views": 1}})

    try:
        owner = User.objects.get(id=sheet["owner"])
        author = owner.first_name + " " + owner.last_name
    except User.DoesNotExist:
        author = "Someone Mysterious"

    sheet_class          = make_sheet_class_string(sheet)
    sheet_collections    = get_user_collections_for_sheet(request.user.id, sheet_id) if sheet["owner"] == request.user.id else None
    displayed_collection = Collection().load({"slug": sheet["displayedCollection"]}) if sheet.get("displayedCollection", None) else None
    embed_flag           = "embed" in request.GET
    likes                = sheet.get("likes", [])
    like_count           = len(likes)
    if request.user.is_authenticated:
        can_edit_flag    = can_edit(request.user, sheet)
        can_add_flag     = can_add(request.user, sheet)
        viewer_is_liker  = request.user.id in likes
    else:
        can_edit_flag    = False
        can_add_flag     = False
        viewer_is_liker  = False

    canonical_url = request.get_full_path().replace("?embed=1", "").replace("&embed=1", "")

    return render_template(request,'sheets.html', None, {
        "sheetJSON": json.dumps(sheet),
        "sheet": sheet,
        "sheet_class": sheet_class,
        "can_edit": can_edit_flag,
        "can_add": can_add_flag,
        "title": sheet["title"],
        "author": author,
        "is_owner": request.user.id == sheet["owner"],
        "sheet_collections": sheet_collections,
        "displayed_collection":  displayed_collection,
        "like_count": like_count,
        "viewer_is_liker": viewer_is_liker,
        "current_url": request.get_full_path,
        "canonical_url": canonical_url,
        "assignments_from_sheet":assignments_from_sheet(sheet_id),
    })
示例#2
0
def new_sheet(request):

    if request.COOKIES.get("new_editor", None):
        sheet = {
            'status': 'unlisted',
            'title': '',
            'sources': [{
                "outsideText": "",
                "node": 1,
            }],
            'nextNode': 2,
            'options': {
                'layout': "stacked",
                'boxed': 0,
                'language': "bilingual",
                'numbered': 0,
                'assignable': 0,
                'divineNames': "noSub",
                'collaboration': "none",
                'highlightMode': 0,
                'langLayout': "heRight",
                'bsd': 0,
            }
        }

        responseSheet = save_sheet(sheet, request.user.id)
        return catchall(request, str(responseSheet["id"]), True)
    """
	View an new, empty source sheet.
	"""
    if "assignment" in request.GET:
        sheet_id = int(request.GET["assignment"])

        query = {"owner": request.user.id or -1, "assignment_id": sheet_id}
        existingAssignment = db.sheets.find_one(query) or []
        if "id" in existingAssignment:
            return view_sheet(request, str(existingAssignment["id"]), True)

        if "assignable" in db.sheets.find_one({"id": sheet_id})["options"]:
            if db.sheets.find_one({"id":
                                   sheet_id})["options"]["assignable"] == 1:
                return assigned_sheet(request, sheet_id)

    owner_groups = get_user_groups(request.user.id)
    query = {"owner": request.user.id or -1}
    hide_video = db.sheets.count_documents(query) > 2

    return render(
        request, 'sheets.html', {
            "can_edit": True,
            "new_sheet": True,
            "is_owner": True,
            "hide_video": hide_video,
            "owner_groups": owner_groups,
            "current_url": request.get_full_path,
        })
示例#3
0
def view_sheet(request, sheet_id):
	"""
	View the sheet with sheet_id.
	"""
	panel = request.GET.get('panel', '0')



	if panel == '1':
		return catchall(request, sheet_id, True)

	sheet = get_sheet(sheet_id)
	if "error" in sheet:
		return HttpResponse(sheet["error"])

	sheet["sources"] = annotate_user_links(sheet["sources"])

	# Count this as a view
	db.sheets.update({"id": int(sheet_id)}, {"$inc": {"views": 1}})

	try:
		owner = User.objects.get(id=sheet["owner"])
		author = owner.first_name + " " + owner.last_name
		owner_groups = get_user_groups(request.user.id) if sheet["owner"] == request.user.id else None
	except User.DoesNotExist:
		author = "Someone Mysterious"
		owner_groups = None

	sheet_class      = make_sheet_class_string(sheet)
	sheet_group      = Group().load({"name": sheet["group"]}) if "group" in sheet and sheet["group"] != "None" else None
	embed_flag       = "embed" in request.GET
	likes            = sheet.get("likes", [])
	like_count       = len(likes)
	if request.user.is_authenticated:
		can_edit_flag    = can_edit(request.user, sheet)
		can_add_flag     = can_add(request.user, sheet)
		can_publish_flag = sheet_group.can_publish(request.user.id) if sheet_group else False
		viewer_is_liker  = request.user.id in likes
	else:
		can_edit_flag    = False
		can_add_flag     = False
		can_publish_flag = False
		viewer_is_liker  = False

	canonical_url = request.get_full_path().replace("?embed=1", "").replace("&embed=1", "")

	return render(request,'sheets.html', {"sheetJSON": json.dumps(sheet),
												"sheet": sheet,
												"sheet_class": sheet_class,
												"can_edit": can_edit_flag,
												"can_add": can_add_flag,
												"can_publish": can_publish_flag,
												"title": sheet["title"],
												"author": author,
												"is_owner": request.user.id == sheet["owner"],
												"is_public": sheet["status"] == "public",
												"owner_groups": owner_groups,
												"sheet_group":  sheet_group,
												"like_count": like_count,
												"viewer_is_liker": viewer_is_liker,
												"current_url": request.get_full_path,
												"canonical_url": canonical_url,
											  	"assignments_from_sheet":assignments_from_sheet(sheet_id),
											})
示例#4
0
def view_sheet(request, sheet_id):
    """
	View the sheet with sheet_id.
	"""
    panel = request.GET.get('panel', '0')

    if panel == '1':
        return catchall(request, sheet_id, True)

    sheet = get_sheet(sheet_id)
    if "error" in sheet:
        return HttpResponse(sheet["error"])

    sheet["sources"] = annotate_user_links(sheet["sources"])

    # Count this as a view
    db.sheets.update({"id": int(sheet_id)}, {"$inc": {"views": 1}})

    try:
        owner = User.objects.get(id=sheet["owner"])
        author = owner.first_name + " " + owner.last_name
        owner_groups = get_user_groups(
            request.user.id) if sheet["owner"] == request.user.id else None
    except User.DoesNotExist:
        author = "Someone Mysterious"
        owner_groups = None

    sheet_class = make_sheet_class_string(sheet)
    sheet_group = Group().load({
        "name": sheet["group"]
    }) if "group" in sheet and sheet["group"] != "None" else None
    embed_flag = "embed" in request.GET
    likes = sheet.get("likes", [])
    like_count = len(likes)
    if request.user.is_authenticated:
        can_edit_flag = can_edit(request.user, sheet)
        can_add_flag = can_add(request.user, sheet)
        can_publish_flag = sheet_group.can_publish(
            request.user.id) if sheet_group else False
        viewer_is_liker = request.user.id in likes
    else:
        can_edit_flag = False
        can_add_flag = False
        can_publish_flag = False
        viewer_is_liker = False

    canonical_url = request.get_full_path().replace("?embed=1", "").replace(
        "&embed=1", "")

    return render(
        request, 'sheets.html', {
            "sheetJSON": json.dumps(sheet),
            "sheet": sheet,
            "sheet_class": sheet_class,
            "can_edit": can_edit_flag,
            "can_add": can_add_flag,
            "can_publish": can_publish_flag,
            "title": sheet["title"],
            "author": author,
            "is_owner": request.user.id == sheet["owner"],
            "is_public": sheet["status"] == "public",
            "owner_groups": owner_groups,
            "sheet_group": sheet_group,
            "like_count": like_count,
            "viewer_is_liker": viewer_is_liker,
            "current_url": request.get_full_path,
            "canonical_url": canonical_url,
            "assignments_from_sheet": assignments_from_sheet(sheet_id),
        })