Ejemplo n.º 1
0
    def accept(self, user):
        """Update invitation status when invitation ia accepted"""

        # If invitation is to a group, assign user to that group
        # See if user is already a member of this group
        try:
            # If so, member is probably being promoted to 'coordinator'
            membership = Membership.objects.get(user=user, group=self.group)
        except:
            membership = None

        if membership:
            return
        else:
            membership = Membership(user=user,
                                    group=self.group,
                                    date_joined=datetime.datetime.now(),
                                    is_coordinator=False)
            # Add link from user to group
            user.groups.add(self.group.id)
            user.save()
            membership.save()
            multi_use_invitation_user = MultiUseInvitationUsers(
                multi_use_invitation=self, group=self.group, user=user)
            multi_use_invitation_user.save()

        self.save()
Ejemplo n.º 2
0
 def form_valid(self, form):
     """Create a Membership between the creator user and the new Group."""
     response = super().form_valid(form)
     membership = Membership(user=self.request.user,
                             group=form.instance,
                             role=GroupRole.objects.get(name="Admin"))
     membership.save()
     return response
Ejemplo n.º 3
0
    def post(self, request, *args, **kwargs):
        print(self.kwargs.get('pk'))

        if Group.objects.get(id=self.kwargs.get('pk')):
            m1 = Membership(person=request.user,
                            group=Group.objects.get(id=self.kwargs.get('pk')),
                            date_joined=today())
            m1.save()
        return redirect('groups')
Ejemplo n.º 4
0
def create_project(request):
    if request.method == 'POST':
        form = ProjectCreateForm(request.POST)
        if form.is_valid():
            form.save()
        p = get_object_or_404(Project,name=request.POST['name'], leader=request.user)
        membership = Membership(user=request.user, project=p)
        membership.save()
        projects = Project.objects.filter(name='Prototype', leader__username='******', methodology__pk=request.POST['methodology'], 
                                          enabled=True)
        
        if projects.count() == 1:
            project = projects.get()
            activities = Activity.objects.filter(project=project)
            for activity in activities: 
                pk_activity = activity.pk
                activity.pk = None
                activity.date_start = timezone.now()
                activity.date_end = timezone.now()
                activity.project = p
                activity_aux = get_object_or_404(Activity,pk=pk_activity)
                activity.save()
                activity.activities_required = activity_aux.activities_required.all()
                activity.activities_super = activity_aux.activities_super.all()
                activity.save()
                
            activities = Activity.objects.filter(project=p)
            for activity in activities:
                
                activities_required = activity.activities_required.all()
                activities_clone_required = []
                for activity_required in activities_required:
                    activities_clone_required.append(get_object_or_404(Activity, name=activity_required.name, project=p))
                
                activities_super = activity.activities_super.all()
                activities_clone_super = []    
                for activity_super in activities_required:
                    activities_clone_super.append(get_object_or_404(Activity, name=activity_super.name, project=p))
                             
                activity.activities_required = activities_clone_required
                activity.activities_super    = activities_clone_super
                activity.save()        
                
        return manage_project(request) 
    else:
        # m = Methodology.objects.filter(is_private=True, enabled=True)
        form = ProjectCreateForm(initial={'leader':request.user})
        return render_to_response('project/create_project.html', {'form':form,}, context_instance=RequestContext(request))
def create_user_role_form(request, user_id):
    Usuario = User.objects.get(id=user_id)
    Roles = Role.objects.all()
    if str(Usuario) in request.GET:
        message = 'Se ha agregado nuevo rol al usuario  %r' % str(Usuario)
        new_rol = Membership(user_id=user_id,
                             project_id=1,
                             role_id=int(request.GET[str(Usuario)]),
                             date_joined='2012-07-01')
        new_rol.save()
    else:
        message = 'No se envio su formulario'
    return render_to_response('activity/create_user_role.html', {
        'message': message,
        'Usuario': Usuario,
        'Roles': Roles
    },
                              context_instance=RequestContext(request))
def my_join_request(request):
    if request.method == 'POST':     
        r = get_object_or_404(Request,to_user_id=request.user.id, project_id = request.POST['project'])
        message = ""
        if(request.POST['button'] == 'accept'):
            p = get_object_or_404(Project,pk=request.POST['project'])
            membership = Membership(user=request.user, project=p)
            membership.save()
            message = "La solicitud ha sido aceptada" 
        else:
            message = "La solicitud ha sido rechazada" 
        r.delete()
        return render_to_response('social/my_join_request.html',
                                  {'message':message},
                                  context_instance=RequestContext(request))
    else:
        join_request = Request.objects.filter(to_user_id=request.user.id)
        return render_to_response('social/my_join_request.html',
                                  {'join_request':join_request},
                                  context_instance=RequestContext(request))
Ejemplo n.º 7
0
def CreateGroup(request):
    auth_user = CheckAuth(request)
    if auth_user == False:
        return HttpResponse(status=403)

    name = request.POST.get('name', False)
    users_group = request.POST.get('users', False)

    user_admin = User.objects.get(init=auth_user[0]['id'])

    #### CREATE GROUP #####
    init = get_random_string(length=32)
    key = get_random_string(length=32)
    try:
        insert = Group(init=init,
                       admin=user_admin.id,
                       name=name,
                       date_create=datetime.now(),
                       public_key=key)
        insert.save()
    except IntegrityError as e:
        return HttpResponse('{"status":"error","reason":"name exist"}')
    #### /CREATE GROUP #####

    users_in_group = User.objects.filter(init__in=users_group.split(','))
    a = list(users_in_group)

    for i in users_in_group:
        usr = User.objects.get(id=i.id)
        usr.group.add(insert.id)

    insert_membership = Membership(group=init)
    insert_membership.save()
    member = Membership.objects.get(group=init)
    member.users.add(*a)

    return HttpResponse('{"status":"success","init":"' + init + '","name":"' +
                        name + '"}')
Ejemplo n.º 8
0
def accept_invitation(request, pk):
    """View for accepting an invitation and creating a membership."""
    invitation = Invitation.objects.get(pk=pk)
    membership_role = GroupRole.objects.get(name="Member")
    if not Membership.objects.filter(user=request.user,
                                     group=invitation.group).exists():
        Membership(user=request.user,
                   group=invitation.group,
                   role=membership_role).save()

    emails = EmailAddress.objects.filter(user=request.user)
    Invitation.objects.filter(email__in=emails.values('email'),
                              group=invitation.group).delete()

    return HttpResponse()
Ejemplo n.º 9
0
    def post(self, request, *args, **kwargs):
        # memb = Membership.objects.get(person=request.user, group_id = self.kwargs.get('pk') )
        try:
            memb = Membership.objects.get(person=request.user, group_id=self.kwargs.get('pk'))
        except:
            memb = None

        if not memb:
            if Group.objects.get(id=self.kwargs.get('pk')):
                m1 = Membership(person=request.user, group=Group.objects.get(id=self.kwargs.get('pk')), date_joined=today())
                m1.save()
        else:
            m1 = Membership.objects.get(person=request.user, group=Group.objects.get(id=self.kwargs.get('pk')))
            m1.delete()

        return redirect('groups')
Ejemplo n.º 10
0
    def accept(self, user):
        """Update invitation status when invitation ia accepted"""

        # If invitation is to a group, assign user to that group

        if (self.invitation_type == Invitation.BECOME_GROUP_MEMBER or
                self.invitation_type == Invitation.BECOME_GROUP_COORDINATOR):

            if self.invitation_type != Invitation.BECOME_GROUP_MEMBER:
                is_coordinator = True
            else:
                is_coordinator = False

            # See if user is already a member of this group
            try:
                # If so, member is probably being promoted to 'coordinator'
                membership = Membership.objects.get(user=user,
                                                    group=self.group)
            except:
                membership = None

            if membership:
                if is_coordinator and not membership.is_coordinator:
                    # promote user to coordinator
                    if membership.is_active:

                        sc = StatusChange(user=user,
                                          group=self.group,
                                          status_change=status_change_values[
                                              'MEMBER_TO_ADMIN'],
                                          is_initiated_by_user=False)

                        sc.save()

                    membership.is_coordinator = is_coordinator
                    membership.save()
                elif membership.is_removed:
                    membership.is_active = True
                    membership.is_removed = False
                    membership.date_became_removed = None
                    user.groups.add(self.group.id)
                    user.save()
                    membership.save()
                    print(membership.is_removed)
                else:
                    print("Duplicate Invitation not caught")
                    raise
            else:
                membership = Membership(user=user,
                                        group=self.group,
                                        date_joined=datetime.datetime.now(),
                                        is_coordinator=is_coordinator)
                # Add link from user to group
                user.groups.add(self.group.id)
                user.save()

            membership.save()

        self.is_accepted = True
        self.response_timestamp = timezone.now()
        self.confirmed_invitee = user
        self.save()

        # Since user is now registered, delete record as UnregisteredUser
        invitee = self.invitee
        invitee.delete()
Ejemplo n.º 11
0
    def done(self, form_list, form_dict, **kwargs):
        """
        Gather the data from the three forms. If the user already exists,
        update the profile, if not create a new user. Then add a new membership.
        """
        login_step = self.get_cleaned_data_for_step('login')
        address_step = self.get_cleaned_data_for_step('user_info')['address']
        profile_step = self.get_cleaned_data_for_step('user_info')['profile']
        membership_step = self.get_cleaned_data_for_step('membership')

        # Renew membership for current user
        if login_step is None:
            u = self.request.user

            # Update the user profile
            profile_form = ProfileForm(profile_step, instance=u.profile)
            u.profile = profile_form.save()
            u.save()
        else:
            # Create a new user from steps 'login' & 'profile'
            u = User(email=login_step['email'])
            u.is_active = False  # Not activated yet
            p = Profile(**profile_step)
            p.save()

            u.profile = p
            u.save()

        # Create or update address info
        addresses = u.profile.address_set.all()
        if len(addresses) > 0:
            add = addresses[0]
            add = AddressForm(address_step, instance=addresses[0])
        else:
            add = Address(**address_step)
            add.profile = u.profile
        add.save()

        # Create a new Membership object
        membership = Membership(**membership_step)
        membership.profile = u.profile
        membership.start_date = membership.next_start_date()
        membership.amount = membership.compute_amount()
        membership.duration = 1  # valid for one year
        membership.save()

        # Send a confirmation email if the user has to pay
        if membership.amount > 0:
            membership.email_user(status="submitted")

        mb_url = self.request.build_absolute_uri(
            reverse('membership-detail', args=[membership.uid]))

        return redirect("membership-detail", membership.uid)