Exemplo n.º 1
0
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})
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
 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()
Exemplo n.º 4
0
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})
Exemplo n.º 5
0
 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()
Exemplo n.º 6
0
 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()
Exemplo n.º 7
0
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")
Exemplo n.º 8
0
    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