예제 #1
0
def on_desktop_deleted(sender, **kwargs):
    """ Deletes cache entries for a given desktop. """
    desktop = kwargs.get("instance")
    username = desktop.owner.username
    desktop_slug = desktop.slug

    clear_desktop_cached_views(username, desktop_slug)
    DesktopAPI.clear_desktop_cache(username, desktop_slug)
    Desktop.delete_revision_id(username, desktop_slug)
예제 #2
0
def on_desktop_saved(sender, **kwargs):
    if sender is not Desktop:
        return
    if not kwargs.get("created"):
        desktop = kwargs.get("instance")
        username = desktop.owner.username
        slug = desktop.slug
        DesktopAPI.set_desktop_cache(username, slug, desktop.definition_json)
        clear_desktop_cached_views(username, slug)
        Desktop.update_revision_id(username, slug)
예제 #3
0
def desktop(request, username, desktop_slug):
    """ Generates the desktop, for editing. """

    if not (request.user.is_authenticated or username == "test"):
        return HttpResponseRedirect("/login/?next=%s" % request.path)

    try:
        desktop = Desktop.objects.get(owner__username=username, slug=desktop_slug)
    except Desktop.DoesNotExist:
        raise Http404

    if not request.user.is_staff and username != "test":
        # If this isn't the users desktop and the desktop is private
        if request.user != desktop.owner:
            raise Http404

    td = {}
    td["desktop_name"] = desktop.name
    td["user"] = request.user
    td["username"] = username
    td["desktop_slug"] = desktop_slug
    td["initial_dialog"] = request.GET.get("dialog", "")

    td["desktop_private"] = "1" if desktop.private else "0"

    stack_icon = Icon.lookup(settings.DEFAULT_STACK_ICON)

    td["stack_icon_key"] = settings.DEFAULT_STACK_ICON
    td["stack_icon_sizes"] = stack_icon.sizes
    td["stack_icon_url"] = os.path.join(settings.MEDIA_URL, stack_icon.img_url)

    td["view_url"] = desktop.get_absolute_url()

    td["definition_json"] = DesktopAPI.get_desktop_definition(username, desktop_slug)
    td["theme"] = desktop.theme

    return td