def add_member(request,shaastra_id = None,teamevent_id = None):
    dajax = Dajax()
    dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();")
    if not request.user.is_authenticated():
        dajax.script('$.bootstrapGrowl("Login First",{type:"danger",delay:10000})')
        return dajax.json()
    if teamevent_id is None or shaastra_id is None:
        dajax.script('$.bootstrapGrowl("Invalid request",{type:"danger",delay:10000})')
        return dajax.json()
    try:
        teamevent = TeamEvent.objects.get(id = teamevent_id)
        print shaastra_id   
        user = UserProfile.objects.get(shaastra_id = shaastra_id).user
        if request.user not in teamevent.users.all():
            dajax.script('$.bootstrapGrowl("Invalid request: user not part of team",{type:"danger",delay:10000})')
            #Malicious attempt!?
            return dajax.json()
        if user in teamevent.users.all():
            dajax.script('$.bootstrapGrowl("Invalid request: User is already on the team, you cannot add again.",{type:"danger",delay:10000})')
            return dajax.json()
        #User cannot be added if on another team
        msg,team_name = has_team(user,teamevent.event_id)
        if msg == 'has_team':
            dajax.script('$.bootstrapGrowl("Invalid request: User is already on another team for this event. Multiple entries are prohibited.   ",{type:"danger",delay:10000})')
            return dajax.json()
        #The below statement will not be used, but, for malicious attempts to modify input params, we need it
        if user.username == request.user.username:
            dajax.script('$.bootstrapGrowl("Invalid request: You are already on the team.",{type:"danger",delay:10000})')
            return dajax.json()
        if teamevent.size() == teamevent.get_event().team_size_max:
            dajax.script('$.bootstrapGrowl("Sorry. Add member failed.You cannot have more than %s team members in your team.",{type:"danger",delay:10000})'% teamevent.get_event().team_size_min)
            return dajax.json()
        teamevent.users.add(user)
        teamevent.save()
        msg_update = 'Teammate %s was add to team %s for event %s on %s by %s'%(user.get_full_name(),teamevent.team_name,teamevent.get_event().title,str(timezone.now()),request.user.get_full_name())
        for user_team in teamevent.users.all():
            if not user_team.username == user.username:
                update = Update(tag = 'Team Edit',content = msg_update,user = user_team)
                update.save()
        msg_update_user = '******'%(teamevent.team_name,teamevent.get_event().title,str(timezone.now()),user.get_full_name())
        update = Update(tag = 'Team Add',content = msg_update_user,user = user)
        update.save()
        dajax.script('$.bootstrapGrowl("Addition success! %s has been added as a member of team %s",{type:"info",delay:10000,width:"auto"})'% (user.get_full_name(),teamevent.team_name))
        #TODO: Update create
        html_stuff = render_to_string('dashboard/welcome.html',{},RequestContext(request))
        if html_stuff:
            dajax.assign('#content_dash','innerHTML',html_stuff)
        return dajax.json()

    except:
        dajax.script('$.bootstrapGrowl("Invalid request. Check Shaastra ID entered",{type:"danger",delay:10000})')
        return dajax.json()
    return dajax.json()
示例#2
0
def addEvents():
	xml = getXML()
	
	updateHour =  datetime.datetime.now()
	entry = Update(hour=updateHour)
	entry.save()
	
	content = xml.findAll("contenido")
	numEvents = len(content)

	for line in content:
		(title, dateTime, hourEnd, price, eventType, duration, description, url) = getEvent(line)
		entry = Event(title=title, date=dateTime, dateEnd=hourEnd, price=price, eventType=eventType, duration=duration, description=description, url=url, likes=0)
		entry.save()
def remove_member(request,user_id = None,teamevent_id = None):
    dajax = Dajax()
    dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();")
    if not request.user.is_authenticated():
        dajax.script('$.bootstrapGrowl("Login First",{type:"danger",delay:10000})')
        return dajax.json()
    if teamevent_id is None or user_id is None:
        dajax.script('$.bootstrapGrowl("Invalid request",{type:"danger",delay:10000})')
        return dajax.json()
    try:
        teamevent = TeamEvent.objects.get(id = teamevent_id)
        user = User.objects.get(id = user_id)
        if user not in teamevent.users.all() or request.user not in teamevent.users.all():
            dajax.script('$.bootstrapGrowl("Invalid request: user not part of team",{type:"danger",delay:10000})')
            #Malicious attempt!?
            return dajax.json()
        if teamevent.size() == teamevent.get_event().team_size_min:
            dajax.script('$.bootstrapGrowl("Sorry. Remove failed.You cannot have less than %s team members",{type:"danger",delay:10000})'% teamevent.get_event().team_size_min)
            return dajax.json()
        teamevent.users.remove(user)
        teamevent.save()
        msg_update = 'Your teammate %s was removed from team %s for event %s on %s by %s'%(user.get_full_name(),teamevent.team_name,str(timezone.now()),request.user.get_full_name())
        for user_team in teamevent.users.all():
            update = Update(tag = 'Team Edit',content = msg_update,user = user_team)
            update.save()
        msg_update_user = '******'%(teamevent.team_name,teamevent.get_event().title,str(timezone.now()),request.user.get_full_name())
        update = Update(tag = 'Team Remove',content = msg_update_user,user = user)
        update.save()
        dajax.script('$.bootstrapGrowl("Removal succesrs! %s is no longer a member of team %s",{type:"info",delay:10000,width:"auto"})'% (user.get_full_name(),teamevent.team_name))
        #TODO: Update create
        msg_dash = "Removal success! %s is no longer a member of team %s"% (user.get_full_name(),teamevent.team_name)
        html_stuff = render_to_string('dashboard/welcome.html',{'msg_dash':msg_dash},RequestContext(request))
        if html_stuff:
            dajax.assign('#content_dash','innerHTML',html_stuff)
    
        return dajax.json()
    except:
        dajax.script('$.bootstrapGrowl("Invalid request. ",{type:"danger",delay:10000})')    
        return dajax.json()
    return dajax.json()
def register_event(request,event_id=None,team_name=None,**kwargs):
    dajax=Dajax()
    if event_id is None or team_name is None:
        dajax.script('$.bootstrapGrowl("Invalid entry",{type:"danger",delay:10000})')
        return dajax.json()
    i=1
    shalist=[]
    erp_db = DATABASES.keys()[1]
    try:
        event=ParticipantEvent.objects.using(erp_db).get(id=event_id)
        if not event.registrable_online:
            dajax.script('$.bootstrapGrowl("Invalid event: can\'t register online!",{type:"danger",delay:10000})')
            #TODO: close the modal!!
            return dajax.json()
    except:
        dajax.script('$.bootstrapGrowl("Invalid event",{type:"danger",delay:10000})')    
        return dajax.json()
    teamevent = TeamEvent(event_id=event.id)
    profile = UserProfile.objects.get(user=request.user)
    sha=''
    while 1>0:
        try:
            sha = kwargs['teammate#%d' % i]
            if sha!='':
                if sha==profile.shaastra_id:
                    dajax.script('$.bootstrapGrowl("Enter your teammates\' ID\'s only. You will be registered automatically. You do no need to enter your ID",{type:"danger",delay:10000})')
                    return dajax.json()
                shalist.append(sha)
        except:
            break
        i=i+1
    #check for duplicates
    #TODO: find actual entries first(without '')
    if len(shalist)!=len(set(shalist)):
        dajax.script('$.bootstrapGrowl("No duplicate entries allowed.",{type:"danger",delay:10000})')
        return dajax.json()
    if len(shalist) < event.team_size_min-1:
        dajax.script('$.bootstrapGrowl("Minimum team size:%d!",{type:"danger",delay:10000})'% event.team_size_min)
        return dajax.json()
    msg,teamname = has_team(request.user,event.id)
    if msg =='has_team':
        dajax.script('$.bootstrapGrowl("You are already a part of another team named %s for this event.");$.bootstrapGrowl("A user can be part of only 1 team for an event",{type:"danger",delay:20000});'% (teamname))
        return dajax.json()
    userlist=[]
    userlist.append(request.user)
    up=None
    for sha in shalist:
        try:
            up = UserProfile.objects.get(shaastra_id = sha)
            msg,teamname = has_team(up.user,event.id)
            if msg =='has_team':
                dajax.script('$.bootstrapGrowl("One of your teammates: with id %s is already in another team named %s for this event.");$.bootstrapGrowl("A user can be part of only 1 team for an event",{type:"danger",delay:20000});'% (up.shaastra_id,teamname))
                return dajax.json()
            userlist.append(up.user)
        except:
            dajax.script('$.bootstrapGrowl("One/more of shaastra id\'s entered are invalid!",{type:"danger",delay:20000})')
            return dajax.json()
    teamevent.save()
    teamevent.users=userlist
    teamevent.is_active = True
    teamevent.team_name = team_name
    teamevent.save()
    try:
        for user in userlist:
            update = Update(tag='Event registration',content='Added to team: %s in event %s'%(teamevent.team_name,teamevent.get_event().title),user=user)
            update.save()
    #TODO: updates should not cause error
    except:
        pass
    dajax.script('$.bootstrapGrowl("Your team was registered successfully to event %s",{type:"success",delay:30000})'% event.title)
    dajax.script('$.bootstrapGrowl("Your team ID: %s",{type:"success",delay:100000})'% teamevent.team_id)
    dajax.script('$("#event_register").modal("toggle")')
    enddate = teamevent.get_event().registration_ends
    dajax.script('$.bootstrapGrowl("Please note the deadline for the event given in event details.", {delay:100000} );')
    dajax.script('$("#fb_share").modal("show");')
    #TODO: create updates for other users and him
    return dajax.json()