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()
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()