예제 #1
0
def face_search(request):
    """
    Search photos related to the face(s) in given photo.
    """
    latest_tag_list = dbControl.get_latest_tags()
    email = common.get_email(request)
    if request.method == 'POST':
        latest_tag_list = [r'none for now']
        form = forms.photo_file_form(request.POST or None, request.FILES)
        if form.is_valid():
            photo_file = request.FILES['face_photo_file'].read()
            # upload photo
            photo_url = storage.objUpload(photo_file, tag)
            thumbnail_url = common.get_thumbnail_url(
                photo_url, size='c_fit,w_750')
            # add face to faceset
            person_id_list = faceControl.add_faces(
                method='url', urlOrPath=thumbnail_url)
            photo_list = dbControl.get_related_photos(person_id_list)
            return_dict = {'photo_list': photo_list,
                          'user_Email': email,
                          'latest_tag_list': latest_tag_list}
            return render(request, u'index.html', return_dict)
        else:
            pass

    return_dict = {'user_Email': email,
                  'latest_tag_list': latest_tag_list}
    return render(request, u'face.html', return_dict)
예제 #2
0
def upload(request):
    """
    Upload photo and infomation.
    """
    if request.user.is_authenticated():
        latest_tag_list = dbControl.get_latest_tags()
        email = common.get_email(request)

        # after upload
        if request.method == 'POST':
            form = forms.photo_info_form(request.POST or None, request.FILES)
            if form.is_valid():
                photo_file = request.FILES['photo_file'].read()
                description = request.POST['description']
                tag = request.POST['tag']
                permission = request.POST['permission']
                photo_info = common.upload_photo(
                    photo_file, description, tag, permission, email)

                return_dict = {'latest_tag_list': latest_tag_list,
                              'user_Email': email,
                              'photo_info': photo_info}
                return render(request, 'photo.html', return_dict)
            else:
                pass
        # before upload
        else:
            return_dict = {'latest_tag_list': latest_tag_list,
                          'user_Email': email}
            return render(request, u'upload.html', return_dict)
    else:
        return HttpResponseRedirect(reverse('users_login'))
예제 #3
0
def homepage(request):
    """
    Homepage of the website.
    """

    latest_tag_list = dbControl.get_latest_tags()
    email = common.get_email(request)

    if request.user.is_authenticated():
        # if search
        if request.method == 'POST':
            form = forms.search_form(request.POST or None)
            if form.is_valid():
                search_word = request.POST['search_word']
                photo_list = dbControl.get_photos_of_tag(search_word)
            else:
                pass
        # not search, get photos may be interested in
        else:
            search_word = ''
            photo_list = dbControl.get_interested_photos(email=email)
    # not login
    else:
        search_word = ''
        photo_list = dbControl.get_latest_photos()

    return_dict = {'photo_list': photo_list,
                  'search_word': search_word,
                  'latest_tag_list': latest_tag_list,
                  'user_Email': email}
    return render(request, u'index.html', return_dict)
예제 #4
0
def tag(request, search_word):
    """
    Search by tag (it's search_word here).
    """

    latest_tag_list = dbControl.get_latest_tags()
    email = common.get_email(request)
    photo_list = dbControl.get_photos_of_tag(search_word)

    return_dict = {'photo_list': photo_list,
                  'search_word': search_word,
                  'user_Email': email,
                  'latest_tag_list': latest_tag_list}
    return render(request, u'index.html', return_dict)
예제 #5
0
def photo_delete(request, p_id):
    """ Delete photo, don't check owner now. """
    latest_tag_list = dbControl.get_latest_tags()
    email = common.get_email(request)
    if request.user.is_authenticated():
        p_id = int(p_id)
        is_deleted = dbControl.delete(p_id)
    else:
        is_deleted = False

    return_dict = {'user_Email': email,
                  'latest_tag_list': latest_tag_list,
                  'is_deleted': is_deleted}
    return render(request, 'delete.html', return_dict)
예제 #6
0
def photo_manage(request):
    """ Manage user's photo. """
    if request.user.is_authenticated():
        latest_tag_list = dbControl.get_latest_tags()
        email = common.get_email(request)
        photo_list = dbControl.get_owned_photos(email)

        return_dict = {'photo_list': photo_list,
                      'owner': email,
                      'user_Email': email,
                      'latest_tag_list': latest_tag_list}
        return render(request, u'index.html', return_dict)
    else:
        return HttpResponseRedirect(reverse('users_login'))
예제 #7
0
def photo(request):
    """
    Show infomation of photo. Don't check the p_id temporary
    """
    latest_tag_list = dbControl.get_latest_tags()
    email = common.get_email(request)
    p_id = int(request.GET['photo'])
    if request.user.is_authenticated():
        is_collected = dbControl.is_collected(email, p_id)
    else:
        is_collected = False
    photo_info = dbControl.get_photo_info(p_id, method='p_id')
    return_dict = {'user_Email': email,
                  'latest_tag_list': latest_tag_list,
                  'is_collected': is_collected,
                  'photo_info': photo_info}
    return render(request, 'photo.html', return_dict)