def add_relation(request): feature1 = request.GET.get("feature1", None) feature2 = request.GET.get("feature2", None) relation = request.GET.get("relation", None) if feature1 == None or feature2 == None or relation == None: return render_to_json_response({'error': 'bad request'}) if not request.user.is_staff: return render_to_json_response({'error': 'insufficient permissions error. try logging in again? are you staff / admin?'}) feature1 = get_object_or_404_json(Feature, pk=feature1) feature2 = get_object_or_404_json(Feature, pk=feature2) verb = rel_obj = None try: rel_obj = Relationship.objects.get(feature1=feature1, feature2=feature2) verb = "deleted" except ObjectDoesNotExist: rel_obj = Relationship(feature1=feature1, feature2=feature2, relationship_type=relation) verb = "created" if relation == "": if verb == "deleted": rel_obj.delete() if relation == "conflates": feature2.is_primary = True feature2.save() else: return render_to_json_response({'error': 'relation is already deleted'}) else: rel_obj.save() if relation == "conflates": feature2.is_primary = False feature2.save() return render_to_json_response({'success': 'relation %s successfully.' % verb})
def add_relationship(request): if request.method != "POST": return HttpResponseForbidden("Method not allowed") next = "/" if request.GET.has_key("next"): next = request.GET["next"] form = RelationshipForm(request.POST) if not form.is_valid(): # add error return redirect(next) username = form.cleaned_data["user"] followed = get_object_or_404(User, username=username).get_profile() user = request.user.get_profile() if user != followed: m1 = Relationship(origin=user, destination=followed, relationship_type=1) m1.save() else: pass # add error return redirect(next)
def compute_relationship(self, article): kw_list1 = article.keywords.split(",") for a in Article.objects.all(): kw_list2 = a.keywords.split(",") score = self.calculate_relationship(kw_list1, kw_list2) r = Relationship(id1=article.id, id2=a.id, score=score) r.save()
def add_relation(request): feature1 = request.GET.get("feature1", None) feature2 = request.GET.get("feature2", None) relation = request.GET.get("relation", None) if feature1 == None or feature2 == None or relation == None: return render_to_json_response({"error": "bad request"}) if not request.user.is_staff: return render_to_json_response( {"error": "insufficient permissions error. try logging in again? are you staff / admin?"} ) feature1 = get_object_or_404_json(Feature, pk=feature1) feature2 = get_object_or_404_json(Feature, pk=feature2) verb = rel_obj = None try: rel_obj = Relationship.objects.get(feature1=feature1, feature2=feature2) verb = "deleted" except ObjectDoesNotExist: rel_obj = Relationship(feature1=feature1, feature2=feature2, relationship_type=relation) verb = "created" if relation == "": if verb == "deleted": rel_obj.delete() if relation == "conflates": feature2.is_primary = True feature2.save() else: return render_to_json_response({"error": "relation is already deleted"}) else: rel_obj.save() if relation == "conflates": feature2.is_primary = False feature2.save() return render_to_json_response({"success": "relation %s successfully." % verb})
def compute_relationship(self, article): kw_list1 = article.keywords.split(",") for a in Article.objects.all(): kw_list2 = a.keywords.split(",") score = self.calculate_relationship(kw_list1, kw_list2) r = Relationship(id1=article.id, id2=a.id, score=score) r.save()
def setUp(self): #create the client to be used self.client = Client() #create users self.user1 = User.objects.create_user('user1', '*****@*****.**', 'user1') self.user2 = User.objects.create_user('user2', '*****@*****.**', 'user2') self.user3 = User.objects.create_user('user3', '*****@*****.**', 'user3') self.user4 = User.objects.create_user('user4', '*****@*****.**', 'user4') self.user5 = User.objects.create_user('user5', '*****@*****.**', 'user5') self.user6 = User.objects.create_user('user6', '*****@*****.**', 'user6') self.user7 = User.objects.create_user('user7', '', 'user7') #create a group self.group1 = Group(name='@family') self.group1.save() self.group2 = Group(name="data_view_permission") self.group2.save() permission = Permission.objects.get(codename="data_view") self.group2.permissions.add(permission) #create a relationship r = Relationship(initial_user = self.user5, group = self.group1, target_user = self.user6) r.save() r = Relationship(initial_user = self.user5, group = self.group1, target_user = self.user7) r.save() r = Relationship(initial_user = self.user6, group = self.group1, target_user = self.user7) r.save() #give users permissions self.user5.groups.add(self.group2) #create values for users profiles self.user1.first_name = "First1" self.user1.last_name = "Last1" self.user1.email = "*****@*****.**" self.user1.save()
def create_relationship(request, initial_user, relationship_type): """ This function creates a realtionship from intial_user with relation_type to target user that is in the request.POST payload """ #the user is only allowed to create relationships for him/herself if initial_user != '@me' and request.user.username != initial_user: return HttpResponseForbidden("You are not allowed to create this relationship") iuser = request.user #should always be @me or the username of @me gtype = relationship_type tuser = None try: if request.META['CONTENT_TYPE'] == 'application/json': post_dict = json.loads(request.raw_post_data) tuser = User.objects.get(username = post_dict.get('id', None)) else: tuser = User.objects.get(username = request.POST.get('id', None)) except User.DoesNotExist: return HttpResponseNotFound("The target user of the relationship was not found") relationship = Relationship(initial_user = iuser, group = gtype, target_user = tuser) sid = transaction.savepoint() try: relationship.save() return HttpResponseCreated("The relationship was created") except Relationship.DoesNotExist: return HttpResponseNotFound("The relationship could not be created") except IntegrityError: transaction.savepoint_rollback(sid) return HttpResponseConflict("This relationship already exists")
def create(self, request, mfileid): mfileid_left = mfileid mfileid_right = request.POST.get("mfileid", None) relationship_name = request.POST.get("name", None) if mfileid_right == None: response = rc.BAD_REQUEST logging.info("Bad Request to relationship create handler %s", request.POST) response.write("Invalid Request! No mfileid in POST fields") return response elif relationship_name == None: response = rc.BAD_REQUEST logging.info("Bad Request to relationship create handler %s", request.POST) response.write("Invalid Request! No name in POST fields") return response else: mfile_left = MFile.objects.get(id=mfileid_left) mfile_right = MFile.objects.get(id=mfileid_right) relationship = Relationship(entity1=mfile_left, entity2=mfile_right, name=relationship_name) relationship.save() return relationship