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)
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'))
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)
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)
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)
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'))
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)