def like_project(request): if request.user.is_authenticated(): popularity = 0 if request.GET: if 'project' in request.GET: project = request.GET['project'] userp = request.user.profile if userp.liked_projects == "": userp.liked_projects = "[]" userp.save() projlist = json.decoder.JSONDecoder().decode(userp.liked_projects) if project in request.user.profile.liked_projects: #Unlike the project projlist.remove(project) userp.liked_projects = json.dumps(projlist) userp.save() db_interface.unlikeProject(project) else: #Like the project projlist.append(project) userp.liked_projects = json.dumps(projlist) userp.save() db_interface.likeProject(project) projectfile = db_interface.getProject(project) return HttpResponse(projectfile['popularity']) else: return HttpResponseRedirect('/') else: return HttpResponseRedirect('/') else: return HttpResponseRedirect('/')
def create(request): if not request.user.is_authenticated(): return HttpResponseRedirect("/login/?next=/create/") else: authenticated = True user = request.user issues = [] #Another variable: Access -> true = public && false = private name = description = "" if request.method == "POST": first = False name = request.POST['name'] description = request.POST['description'] creator = request.user.get_username() access = request.POST.getlist('public[]') if "public" in access: access_final = "public" else: access_final = "private" if len(name) < 4 or len(name) > 50: #Project name must be 4-50 characters long. issues.append("name_length") if re.match('^\w+$', name) is None and len(name) != 0: #Project name can only contain characters and numbers and underscores. issues.append("name_char") if len(description) > 500: #Description is optional #If description must be under 500 characters long. issues.append("description_length") if db_interface.checkProjectExists(name): issues.append("name_taken") #Create the project: if len(issues) == 0: if access: access_real = 'public' else: access_real = 'private' db_interface.createProject(name, creator, access_final, description) #Add this project to liked projects userp = request.user.profile try: projlist = json.decoder.JSONDecoder().decode(userp.liked_projects) except ValueError: projlist = [] projlist.append(name) userp.liked_projects = json.dumps(projlist) userp.save() db_interface.likeProject(name) return HttpResponseRedirect('/log/%s' % name) else: first = True context = { "authenticated" : authenticated, "user" : user, "issues" : issues, "first" : first, "name_init" : name, "description_init": description, } return render(request, 'tablemanager/create_project.html', context)