コード例 #1
0
ファイル: user_list.py プロジェクト: f110/Numbers
def render(request):
    cursor = connection.cursor()
    sql = 'select photo.user_id, photo.clap, photo.hash from photo inner join (select user_id, max(clap) as jkey from (select user_id, clap, boo from photo where boo < 3) as photo group by user_id) as subq on photo.clap = subq.jkey and subq.user_id = photo.user_id group by user_id'
    cursor.execute(sql)
    rows = cursor.fetchall()

    unique_hash = []
    for tmp in rows:
        unique_hash.append(tmp[2])
    photos = Photo.objects.filter(hash__in=unique_hash).order_by('user')
    map((lambda x: setattr(x, 'thumbnail_path', x.hash[:1]+"/"+x.hash[:2]+"/"+x.hash)), photos)

    recentAlbumList = Album.objects.order_by('-update_date')[:10]
    paginator = Paginator(recentAlbumList, 10)

    try:
        page = int(request.GET.get('p', '1'))
    except ValueError:
        page = 1

    try:
        recentAlbumList = paginator.page(page)
    except (EmptyPage, InvalidPage):
        recentAlbumList = paginator.page(paginator.num_pages)

    template = loader.get_template('user_list.html')
    context = Context({
        'title': "ユーザー一覧",
        'has_loggedin': request.session.get("has_loggedin", False),
        'photoList': photos,
        'albumList': recentAlbumList,
        })

    return HttpResponse(template.render(context))
コード例 #2
0
ファイル: album_list.py プロジェクト: f110/Numbers
def render(request, user_id = None):
    user = User.objects.filter(id=user_id)[0]
    tmpAlbumList = Album.objects.filter(user=user).order_by('name')

    albumList = []
    for album in tmpAlbumList:
        albumdetail = {}
        has_new = False
        if album.update_date and album.update_date > datetime.now() - timedelta(3):
            has_new = True

        albumdetail['has_new'] = has_new
        albumdetail['album'] = album

        albumList.append(albumdetail)

    paginator = Paginator(albumList, 30)

    try:
        page = int(request.GET.get('p', '1'))
    except ValueError:
        page = 1

    try:
        albumList = paginator.page(page)
    except (EmptyPage, InvalidPage):
        albumList = paginator.page(paginator.num_pages)

    photoList = Photo.objects.filter(user=user, boo__lt=3).order_by("-clap")[:3]
    map((lambda x: setattr(x, 'thumbnail_path', x.hash[:1]+"/"+x.hash[:2]+"/"+x.hash)), photoList)

    template = loader.get_template('album_list.html')
    context = Context({
        'title': user.name+"'s album List",
        'userid': user_id,
        'has_loggedin': request.session.get("has_loggedin", False),
        'albumList': albumList,
        'page': page,
        'pageList': paginator.static_nums(page),
        'photoList': photoList,
        })

    return HttpResponse(template.render(context))
コード例 #3
0
ファイル: index.py プロジェクト: f110/Numbers
def render(request, album_id = None):
    # 表示件数の取得
    number = None
    try:
        number = int(request.GET['n'])
    except KeyError:
        try:
            number = int(request.COOKIES['show_num'])
        except KeyError:
            number = 30

    select_num_list = [10, 30, 50, 100]

    album = Album.objects.filter(id=album_id)[0]

    # 表示順の設定
    sort_by = request.GET.get('s', 'p')
    sort_word = None
    if sort_by == 'p':
        sort_word = 'photo_date'
    elif sort_by == 'f':
        sort_word = 'file_name'
    elif sort_by == 'd':
        sort_word = 'display'
    elif sort_by == 'c':
        sort_word = '-clap'
    else:
        sort_word = 'photo_date'

    photoList_tmp = Photo.objects.order_by(sort_word).filter(album_id=album_id)
    photoList = []
    for photo in photoList_tmp:
        photodetail = {}
        has_new = False
        fewdaysago = datetime.now() - timedelta(3)
        if fewdaysago < photo.insert_date:
            has_new = True

        photodetail['has_new'] = has_new
        photodetail['photo'] = photo
        photodetail['thumbnail_path'] = photo.hash[:1]+"/"+photo.hash[:2]+"/"+photo.hash

        photoList.append(photodetail)

    paginator = Paginator(photoList, number)

    try:
        page = int(request.GET.get('p', '1'))
    except ValueError:
        page = 1

    try:
        photoList = paginator.page(page)
    except (EmptyPage, InvalidPage):
        photoList = paginator.page(paginator.num_pages)

    template = loader.get_template('album.html')
    context = Context({
        'title': album.name+" by "+album.user.name,
        'userid': album.user.id,
        'has_loggedin': request.session.get("has_loggedin", False),
        'sort_word': sort_word,
        'photoList': photoList,
        'number': number,
        'select_num_list': select_num_list,
        'max': paginator.count,
        'page': page,
        'pageList': paginator.static_nums(page),
        })

    httpResponse = HttpResponse(template.render(context))
    httpResponse.set_cookie('show_num', number)
    return httpResponse