def show_blog(request, primkey=None): """ Shows the blog entries on the page Populates : Features Removes : Showcase, Sponsors """ dajax = Dajax() dajax.add_css_class("#showcase", "hide") dajax.add_css_class("#sponsors", "hide") html_content = "" if primkey: pass show_alert(dajax, "info", "This part has not yet been completed") else: bloglist = Thread.objects.all() # print bloglist for i in bloglist: i.description = (i.description[:100] + " ....") if len(i.description) > 100 else i.description html_content = render_to_string("blog/show.html", {"bloglist": bloglist}, RequestContext(request)) if html_content: dajax.assign("#features", "innerHTML", html_content) return dajax.json()
def choose_event_parti(request,choose_form=None): dajax=Dajax() if request.method=="POST" and choose_form != None: form=ChooseEventForm(deserialize_form(choose_form)) if form.is_valid(): clean_form = form.clean() event_name = clean_form['event'] generic_event_instance = GenericEvent.objects.get(title=event_name) event_pk = generic_event_instance.pk teameventlist = TeamEvent.objects.using(mainsite_db).filter(event_id = event_pk) userlist = [] for team in teameventlist: userlist.append([team.users.all(),team.team_name]) #if exportCSV: #response = HttpResponse(content_type='text/csv') #response['Content-Disposition'] = 'attachment; filename="participants.csv' #writer = csv.writer(response) #writer.writerow(['Name','Username','Email','Mobile','Team Name','College','Shaastra ID','Want Accomodation']) #for user1,team_name in userlist: #for all_users in user1: # writer.writerow([all_users.first_name,all_users.username,all_users.email,all_users.userprofile_set.all()[0].mobile_number,team_name, all_users.userprofile_set.all()[0].college,all_users.userprofile_set.all()[0].shaastra_id,all_users.userprofile_set.all()[0].want_accomodation]) html_content = render_to_string('events/coreshow_reg_part.html',locals(),RequestContext(request)) dajax.assign('#id_content_right','innerHTML',html_content) return dajax.json() else: form=ChooseEventForm() html_content = render_to_string('events/choose_event_reg_part.html',locals(),RequestContext(request)) dajax.assign('#id_content_right','innerHTML',html_content) return dajax.json()
def addroom(request,addroom_form=None): dajax = Dajax() if request.method == 'POST' and addroom_form != None: form = AddRoomForm(deserialize_form(addroom_form)) if form.is_valid(): cleaned_form = form.cleaned_data room_num = cleaned_form['room_no'] hostel = cleaned_form['hostel'] already_avail = AvailableRooms.objects.filter(room_no=room_num,hostel=hostel) if already_avail: show_alert(dajax,"error","Room already exists") return dajax.json() else: try: form.save() show_alert(dajax,"success","Room Added Successfully") html_content = render_to_string('hospi/AddRoom.html',locals(),RequestContext(request)) dajax.assign('#tab2',"innerHTML",html_content) return dajax.json() except EditError as error: show_alert(dajax,"error",error.value) return dajax.json() else: show_alert(dajax,"error","Form is invalid") return dajax.json() else: form = AddRoomForm() html_content = render_to_string('hospi/AddRoom.html',locals(),RequestContext(request)) dajax.assign('#tab2',"innerHTML",html_content) return dajax.json()
def edit_profile_password(request, form=None): """ Used to give Dajax(ice) the change password page Renders in : modal Refreshes : right_content """ dajax = Dajax() errors = False userprofile = request.user.get_profile() fullname = userprofile.user.get_full_name() nickname = userprofile.nickname if request.method == 'POST' and form != None: form = PasswordChangeForm(userprofile.user, deserialize_form(form)) if form.is_valid(): form.save() dajax.remove_css_class('#profile_edit_form input', 'error') dajax.script('modal_hide()') # Hide modal show_alert(dajax, 'success', 'Password was changes successfully') else: errors = True dajax.remove_css_class('#profile_edit_form input', 'error') for error in form.errors: dajax.add_css_class('#id_%s' % error, 'error') print "errors :", [i for i in form.errors] #show_alert(dajax, 'error', "There were errors in the form") # as it is in modal, not req else: form = PasswordChangeForm ( userprofile.user ) html_content = render_to_string("users/passwd_form.html", locals(), RequestContext(request)) dajax.assign("#id_modal", "innerHTML", html_content) # Populate modal return dajax.json()
def show_event_list(request,choose_form = None): dajax = Dajax() if request.method == 'POST' and choose_form != None: form = ChooseEventForm(deserialize_form(choose_form)) if form.is_valid(): #Basically emulating show_event_erp without checking for errors clean_form = form.clean() event_name = clean_form['event'] generic_event_instance = GenericEvent.objects.get(title = event_name) event_type = generic_event_instance.event_type event_pk = generic_event_instance.pk if event_type == 'Participant': event_instance = ParticipantEvent.objects.get(pk=event_pk) form = ParticipantEventDetailsForm(instance = event_instance) if event_type == 'Audience': event_instance = AudienceEvent.objects.get(pk=event_pk) form = AudienceEventDetailsForm(instance = event_instance) tab_list = Tab.objects.filter(event=event_instance) #context_dict = {'model_instance' : event_instance, 'type' : 'tab', 'form' : form} html_content = render_to_string('events/erp_tabs.html', locals(), RequestContext(request)) dajax.assign("#id_content_right", "innerHTML", html_content) return dajax.json() else: show_alert(dajax,"error","No content has been uploaded for this event") else: form = ChooseEventForm() html_content = render_to_string('events/choose_event.html', locals(),RequestContext(request)) dajax.assign('#id_content_right','innerHTML', html_content) return dajax.json()
def add_college(request,college=None,city=None,state=None): dajax = Dajax() dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();") #: if user has chosen a college in dropdown, depopulate it OR growl if city is None or college is None or state is None or city =='' or college =='' or state =='': dajax.script('$.bootstrapGrowl("Please enter relevant details for adding your college", {type:"danger",delay:10000});') return dajax.json() else: try: College.objects.get(name__iexact=college) dajax.script('$.bootstrapGrowl("Your college is already on our list, please check again", {type:"danger",delay:10000});') return dajax.json() except: coll=None dajax.script('$("#add_college").modal(\'hide\');') dajax.script('$("#login").show();') coll=College(name=college,city=city,state=state) try: if clean_coll(coll.name) and clean_coll(coll.city): coll.save() else: dajax.script('$.bootstrapGrowl("Please refrain from using profanity", {type:"danger",delay:10000});') return dajax.json() except: coll.save() dajax.assign("#add_coll_name",'innerHTML','%s'% college) dajax.assign("#add_coll_result",'innerHTML','College:') #dajax.script("$('#college')[0]value = '%s'" % college) dajax.script('$.bootstrapGrowl("Your college:<strong>%s</strong> was added. Welcome", {type:"success",delay:10000} );'% str(coll.name) ) # : populate the id_college with the given college details? dajax.script("$('#add_coll_message').toggle();") dajax.script("$('#form_registration #id_college').toggle();") dajax.script("$('#add_coll_form').toggle();") # colllist=College.objects.all() return dajax.json()
def show_event_tdp(request,teamevent_id=None): dajax = Dajax() dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();") if teamevent_id is None: dajax.script('$.bootstrapGrowl("Invalid request to view teamevent details", {type:"danger",delay:20000} );') return dajax.json() try: temp = int(teamevent_id) except: dajax.script('$.bootstrapGrowl("Invalid request to view teamevent details", {type:"danger",delay:20000} );') return dajax.json() if not request.user.is_authenticated(): dajax.script('$.bootstrapGrowl("Login to view your event submission details", {type:"danger",delay:20000} );') return dajax.json() else: profile = UserProfile.objects.get(user=request.user) try: team_event = TeamEvent.objects.get(id=int(teamevent_id)) except: dajax.script('$.bootstrapGrowl("Invalid request", {type:"danger",delay:20000} );') return dajax.json() now = timezone.now() context_dict = {'teamevent':team_event,'profile':profile,'now':now,'TDPFileForm':TDPFileForm(),'settings':settings} html_stuff = render_to_string('dashboard/event_tdp_submit.html',context_dict,RequestContext(request)) if html_stuff: dajax.assign('#content_dash','innerHTML',html_stuff) #dajax.script('$("#event_register").modal("show");') return dajax.json()
def show_tdp_submissions(request): dajax = Dajax() dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();") if not request.user.is_authenticated(): dajax.script('$.bootstrapGrowl("Login to view your registered events", {type:"danger",delay:20000} );') return dajax.json() else: profile = UserProfile.objects.get(user=request.user) team_event_list = profile.get_regd_events() tdp_submission_list = [] for teamevent in team_event_list: if teamevent.get_event().has_tdp and teamevent.has_submitted_tdp: tdp_submission_list.append(teamevent) no_regd = len(tdp_submission_list) now = timezone.now() title_tdp = 'Your successful TDP Submissions' context_dict = {'tdp_submission_list':tdp_submission_list,'profile':profile,'now':now,'no_regd':no_regd,'settings':settings,'title_tdp':title_tdp} html_stuff = render_to_string('dashboard/list_tdp_submission.html',context_dict,RequestContext(request)) if html_stuff: dajax.assign('#content_dash','innerHTML',html_stuff) #dajax.script('$("#event_register").modal("show");') msg_file_upload = request.session.get('file_upload','') if msg_file_upload != '': del request.session['file_upload'] print msg_file_upload print str(msg_file_upload).startswith('TDP Upload Successful') if str(msg_file_upload).startswith('TDP Upload Successful'): dajax.script('$.bootstrapGrowl("%s", {type:"success",delay:20000} );'% msg_file_upload) else: dajax.script('$.bootstrapGrowl("FileUpload Error: %s", {type:"danger",delay:20000} );'% msg_file_upload) return dajax.json()
def choose(request,choose_eventform=None): dajax=Dajax() if request.method=='POST' and choose_eventform != None: form = ChooseEventForm(deserialize_form(choose_eventform)) if form.is_valid(): clean_form = form.clean() event_name = clean_form['event'] generic_event_instance = GenericEvent.objects.get(title = event_name) event_pk = generic_event_instance.pk parti_event_instance = ParticipantEvent.objects.get(pk = event_pk) mins = parti_event_instance.team_size_min maxs = parti_event_instance.team_size_max teamformset = formset_factory(ShaastraIDForm,extra=maxs) data={ 'form-TOTAL_FORMS':u'', 'form-INITIAL_FORMS':u'', 'form-MIN_NUM_FORMS':u'', 'form-MAX_NUM_FORMS':u'', } html_content = render_to_string('hospi/CreateTeam.html',locals(),RequestContext(request)) dajax.assign('#tab6',"innerHTML",html_content) return dajax.json() else: show_alert(dajax,"error","Form invalid") return dajax.json() else: form = ChooseEventForm() html_content = render_to_string('hospi/Choose.html',locals(),RequestContext(request)) dajax.assign('#tab6',"innerHTML",html_content) return dajax.json()
def edit_profile(request, form=None): """ Used to give Dajax(ice) the edit profile page Renders in : modal Refreshes : right_content """ dajax = Dajax() errors = False userprofile = request.user.get_profile() fullname = userprofile.user.get_full_name() nickname = userprofile.nickname if request.method == 'POST' and form != None: form = EditProfileForm(deserialize_form(form), instance=userprofile) if form.is_valid(): form.save() dajax.assign("#edit_profile_nickname", "innerHTML", edit_form.cleaned_data['nickname']) dajax.remove_css_class('#profile_edit_form input', 'error') dajax.script('modal_hide()') # Hide modal show_alert(dajax, 'success', 'Profile was edited and saved') else: errors = True dajax.remove_css_class('#profile_edit_form input', 'error') for error in form.errors: dajax.add_css_class('#id_%s' % error, 'error') #show_alert(dajax, 'error', "There were errors in the form") # as it is in modal, not req else: form = EditProfileForm ( instance = userprofile ) html_content = render_to_string("users/edit_profile.html", locals(), RequestContext(request)) #dajax.remove_css_class('#id_modal', 'hide') # Show modal (already done in do_Dajax) dajax.assign("#id_modal", "innerHTML", html_content) # Populate modal return dajax.json()
def roommap(request,hostel_name): dajax = Dajax() hostel_selected = AvailableRooms.objects.filter(hostel=hostel_name).order_by('room_no') html_content = render_to_string('hospi/RoomMap.html', locals(),RequestContext(request)) dajax.remove_css_class=('#id_modal','hide') dajax.assign('#id_modal',"innerHTML",html_content) return dajax.json()
def hello_world(request): """ Used for testing Dajax + Dajaxice """ dajax = Dajax() dajax.assign('#id_content','innerHTML', "Hello world !") #dajax.alert("Hello World!") return dajax.json()
def logout(request,**kwargs): dajax = Dajax() auth_logout(request) dajax.script('$.bootstrapGrowl("Successfully logged out!", {type:"success",delay:10000});' ) dajax.assign("#login_logout", "innerHTML", '<a href="#login" onclick="$(\'#login\').modal(\'show\');">Login | Sign Up </a>') dajax.add_css_class("#dashboard","hide hidden") dajax.script("window.location.hash = 'events';") return dajax.json()
def select_event_type(request, event_name=None, event_pk=None, event_type_selected=None): """ This function changes type of the event from GenericEvent to Audience or Participant event based on input from the coord You can query based on name or pk. """ dajax = Dajax() json_dict = {} event_instance = None # Argument validation if not ( event_name or event_pk ): # Neither arg given show_alert(dajax, "error", "There is some error on the site, please report to WebOps team") return dajax.json() elif event_name and event_pk: # Both args given .. show_alert(dajax, "error", "There is some error on the site, please report to WebOps team.") return dajax.json() elif event_pk: event_query = GenericEvent.objects.filter(pk=event_pk) elif event_name: event_query = GenericEvent.objects.filter(title=event_name) if event_query: generic_event_instance = event_query[0] event_pk = generic_event_instance.pk event_instance = GenericEvent.objects.get(pk=event_pk) else: show_alert(dajax, "error", "This event has not been created on the site. Contact WebOps team.") return dajax.json() if event_type_selected: if event_type_selected=='Participant': p_event_instance = ParticipantEvent() p_event_instance.pk = event_instance.pk p_event_instance.title = event_instance.title p_event_instance.category = event_instance.category p_event_instance.event_type = 'Participant' p_event_instance.save() request.user.get_profile().event = p_event_instance #form = ParticipantEventDetailsForm(deserialize_form(edit_form), instance = event_instance) elif event_type_selected=='Audience': a_event_instance = AudienceEvent() a_event_instance.pk = event_instance.pk a_event_instance.title = event_instance.title a_event_instance.category = event_instance.category a_event_instance.event_type = 'Audience' a_event_instance.save() request.user.get_profile().event = a_event_instance dajax.script("location.reload();") else: context_dict = {'model_instance' : event_instance} html_content = render_to_string('events/select_event_type.html', context_dict, RequestContext(request)) dajax.assign("#id_content_right", "innerHTML", html_content) # Populate content return dajax.json()
def back(request): dajax = Dajax() dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();") no_regd = len(request.user.get_profile().get_regd_events()) reco_events = ParticipantEvent.objects.using(erp_db).filter(registrable_online=True) # reco_events = registrable_events(time = timezone.now(),user = request.user) context_dict = {'profile':request.user.get_profile(),'no_regd':no_regd,'reco_events':reco_events} html_stuff = render_to_string('dashboard/default.html',context_dict,RequestContext(request)) if html_stuff: dajax.assign('#content_dash','innerHTML',html_stuff) return dajax.json()
def contacts(request): """ Used to show table of all members participating in shaastra It creates a table for this. Renders in : right_content Refreshes : null EVERYONE : It can be seen by anyone who has signed in QUERIES TO RETRIEVE: 1. Every user's: > Name > Department > Designation > Contact > Link to profile """ dajax = Dajax() # To hold the json userprofile = request.user.get_profile() # Query dictionary will contain UserProfile and the table to be drawn query_dictionary = {} # Initialize a blank Query dictionary. query_dictionary["userprofile"] = userprofile query_dictionary["TASK_STATUSES"] = TASK_STATUSES # To search for status msg html_content = "" # ALL QUERYSETS OF TASKS FILTERED FOR THE USER MUST BE AGAIN FILTERED BY DEPARTMENT (the way I've done it for user_tasks). THIS HANDLES THE MULTIPLE IDENTITY DISORDER. # Assigning the above values # ALL all_users = ERPUser.objects.all() query_dictionary["users_info"] = [] for u in all_users: user_info = { 'iden' : u.id, 'name' : u.user.first_name + " " + u.user.last_name, 'dept' : u.get_dept_subdept(), 'desig' : u.get_position(), 'ph_mad' : u.chennai_number, 'ph_home' : u.summer_number, 'email' : u.user.email } query_dictionary['users_info'].append(user_info) html_content = render_to_string("dash/contacts.html", query_dictionary, RequestContext(request)) if html_content != "": # put html generated above into json if not null # if null, alert has already been taken care of dajax.assign('#id_content_right','innerHTML', html_content) return dajax.json()
def contact_us(request): """ Used to populate the Modal with Contact Us page """ dajax = Dajax() html_content = render_to_string("common/contact_us.html", locals(), RequestContext(request)) dajax.remove_css_class('#id_modal', 'hide') # Show modal dajax.assign("#id_modal", "innerHTML", html_content) # Populate modal #print "added" return dajax.json()
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 register(request,reg_form=None,coll_form=None): dajax=Dajax() if request.method=='POST': form = RegistrationForm(deserialize_form(reg_form)) collegeform = CollegeForm(deserialize_form(coll_form)) if form.is_valid(): if not collegeform.is_valid(): collist = form.cleaned_data['college'].split('|') collquery = College.objects.using(mainsite_db).filter(name = collist[0],city=collist[1], state=collist[2]) if collquery.count(): college=collquery[0] else: college = College(name=collist[0],city=collist[1],state=collist[2]) college.save(using='mainsite') else: college = collegeform.instance college.save(using='mainsite') cleaned_form = form.cleaned_data shaastraid = cleaned_form['shaastra_id'] if not id_in_db(shaastraid): new_user = User(first_name=cleaned_form['first_name'],last_name=cleaned_form['last_name'],username=cleaned_form['username'],email=cleaned_form['email']) new_user.set_password('default') new_user.is_active = True new_user.save(using='mainsite') userprofile = UserProfile(user=new_user, gender = cleaned_form['gender'], branch = cleaned_form['branch'], age = cleaned_form['age'], mobile_number = cleaned_form['mobile_number'], college_roll = cleaned_form['college_roll'], college = college, shaastra_id = shaastraid, ) userprofile.save(using='mainsite') else: userprofile = get_userprofile(shaastraid) userprofile.gender = cleaned_form['gender'] userprofile.branch = cleaned_form['branch'] userprofile.age = cleaned_form['age'] userprofile.mobile_number = cleaned_form['mobile_number'] userprofile.college_roll = cleaned_form['college_roll'] userprofile.college = college userprofile.save(using='mainsite') new_form = IndividualForm(initial={'shaastra_ID':shaastraid}) html_content = render_to_string('hospi/Checkin_form.html',locals(),RequestContext(request)) dajax.assign('#tab3',"innerHTML",html_content) return dajax.json() else: show_alert(dajax,"error","Form is invalid") return dajax.json()
def view_tdp(request,event_pk=None): dajax = Dajax() #get tdp objects from mainsite code #import get_tdp_event on top and this takes in event as argument #display in a table name and path to file event = ParticipantEvent.objects.get(pk=event_pk) tdplist = [] for tdp in TDP.objects.using(mainsite_db).filter(teamevent__event_id = event_pk): tdplist.append((tdp,tdp.teamevent.team_id)) html_content = render_to_string('events/view_tdp.html',locals(),RequestContext(request)) dajax.assign('#id_content_right','innerHTML',html_content) return dajax.json()
def add_member_form(request,teamevent_id = None): dajax = Dajax() dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();") if teamevent_id is None: return dajax.json() try: teamevent = TeamEvent.objects.get(id = teamevent_id) except: return dajax.json() html_stuff = render_to_string('dashboard/add_member.html',{'teamevent':teamevent},RequestContext(request)) if html_stuff: dajax.assign('#content_dash','innerHTML',html_stuff) return dajax.json()
def display_task(request, primkey, comments_field=None): """ Displays a task to viewers with a commet field It handles the displaying of all tasks : intra and cross The post method handles the receiving of a submitted comment and saves it Renders in : modal Refreshes : if new comment added, refreshed content of modal """ # TODO: Redirect people who aren't allowd to view this task. # Add edit and delete buttons for cores and supercoords # Display ALL details in the template - template needs work. print primkey dajax = Dajax() html_content = "" primkey = int(primkey) # Save comment if new comment given # Get Task + comments and populate try: task = Task.objects.get(pk = primkey) task_statuses = TASK_STATUSES print "task" if request.method == 'POST' and comments_field != None: # Add new comment if necessary if comments_field == "": dajax.add_css_class("#comments_field", "error") else : task_comment = Comment() task_comment.task = Task.objects.filter(id = task.id)[0] task_comment.author = request.user task_comment.comment_string = comments_field task_comment.time_stamp = datetime.datetime.now() task_comment.save() print "check comment" if ( comments_field != "" and comments_field != None ) or request.method == 'GET': print "true" # i.e. if "Submit Comment" was pressed, and comment was given OR GET ... need to refresh comments = Comment.objects.filter(task = task) html_content = render_to_string('tasks/display.html', locals(), RequestContext(request)) print html_content dajax.remove_css_class('#id_modal', 'hide') # Show modal dajax.assign("#id_modal", "innerHTML", html_content) # Populate modal print "done" except: show_alert(dajax, "error", "The task was not found") html_content = "" return dajax.json()
def add_update(request,event_pk=None,update_form=None,update_pk=None): dajax = Dajax() if request.method == 'POST' and update_form != None: form = UpdateForm(deserialize_form(update_form)) generic_event_instance = GenericEvent.objects.get(pk=event_pk) all_updates = Update.objects.filter(event=generic_event_instance) update_count = 0 major_count = 0 if update_pk: pass else: for u in all_updates: if (update_count>=3) and (u.category=='Updates'): show_alert(dajax,'error',"This event already has 4 Updates.\ Please mark one update as Expired before adding a new update") return dajax.json() elif (major_count>=1) and (u.category=='Major Update'): show_alert(dajax,'error',"This event already has one Major Update.\ Please mark the Major Update as Expired before adding another one") return dajax.json() elif u.category=='Updates': if u.expired is False: update_count = update_count + 1 elif u.category=='Major Update': if u.expired is False: major_count = major_count + 1 if form.is_valid(): try: form.save(event_inst = generic_event_instance,update_pk=update_pk) except EditError as error: show_alert(dajax,"error",error.value) return dajax.json() else: show_alert(dajax,"error","Some information seems to be missing, please fill the form again") return dajax.json() all_updates = Update.objects.filter(event=generic_event_instance) html_content = render_to_string('events/add_update.html',locals(),RequestContext(request)) dajax.assign("#id_content_right","innerHTML",html_content) return dajax.json() else: if update_pk: update_instance = Update.objects.get(pk=update_pk) form = UpdateForm(instance = update_instance) else: form = UpdateForm() generic_event_instance = GenericEvent.objects.get(pk=event_pk) all_updates = Update.objects.filter(event=generic_event_instance) html_content = render_to_string('events/add_update.html',locals(),RequestContext(request)) dajax.assign('#id_content_right','innerHTML',html_content) return dajax.json()
def change_password_form(request): dajax = Dajax() dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();") #: if user has chosen a college in dropdown, depopulate it OR growl if not request.user.is_authenticated(): dajax.script('$.bootstrapGrowl("Login First!", {type:"danger",delay:10000} );') return dajax.json() profile = UserProfile.objects.get(user=request.user) change_password_form = ChangePasswordForm() context_dict = {'form_change_password':change_password_form,'profile':profile,'settings':settings} html_stuff = render_to_string('dashboard/change_password.html',context_dict,RequestContext(request)) if html_stuff: dajax.assign('#content_dash','innerHTML',html_stuff) #dajax.script('$("#event_register").modal("show");') return dajax.json()
def show_updates(request): dajax = Dajax() dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();") if not request.user.is_authenticated(): dajax.script('$.bootstrapGrowl("Login to view your registered events", {type:"danger",delay:20000} );') return dajax.json() else: profile = request.user.get_profile() updates_list = list(Update.objects.filter(user = request.user).order_by('tag')) #TODO: order by time??: no_updates = len(updates_list) now = timezone.now() context_dict = {'updates_list':updates_list,'profile':profile,'now':now,'no_updates':no_updates,'settings':settings} html_stuff = render_to_string('dashboard/list_updates.html',context_dict,RequestContext(request)) if html_stuff: dajax.assign('#content_dash','innerHTML',html_stuff) #dajax.script('$("#event_register").modal("show");') return dajax.json()
def display_profile(request, userid=None): """ Used to show profile using Dajax(ice) Renders in : modal Refreshes : none """ dajax = Dajax() profile_dict = dict () profile_dict['userexists'] = True html_content = "" try: if userid == None: profile = request.user.get_profile() else: profile = ERPUser.objects.get ( pk = userid ) # Profile seems to exist, get data userprofile = request.user.get_profile() profile_dict['nickname'] = profile.nickname profile_dict['position'] = get_position ( profile ) profile_dict['fullname'] = profile.user.get_full_name() profile_dict['chennaino'] = profile.chennai_number profile_dict['summerno'] = profile.summer_number profile_dict['summerstay'] = profile.summer_stay profile_dict['hostel'] = profile.hostel profile_dict['roomno'] = str(profile.room_no) #This is a flag which indicates that the profile being viewed is the user's own. Hence there will be #a button to edit. profile_dict['ownprofile'] = ( profile == userprofile ) # Render the template with given info html_content = render_to_string('users/view_profile.html', profile_dict, RequestContext(request)) except: # Profile given was invalid. profile_dict['userexists'] = False html_content = render_to_string('users/view_profile.html', locals(), RequestContext(request)) dajax.remove_css_class('#id_modal', 'hide') # Show modal dajax.assign('#id_modal','innerHTML', html_content) # Populate modal return dajax.json()
def choose_event_tdp(request, choose_form=None): dajax = Dajax() if request.method == 'POST' and choose_form !=None: form = ChooseEventForm(deserialize_form(choose_form)) if form.is_valid(): clean_form = form.clean() event_name = clean_form['event'] generic_event_instance = GenericEvent.objects.get(title=event_name) event_pk = generic_event_instance.pk tdplist = [] for tdp in TDP.objects.using(mainsite_db).filter(teamevent__event_id = event_pk): tdplist.append((tdp,tdp.teamevent.team_id)) html_content = render_to_string('events/view_tdp.html',locals(),RequestContext(request)) dajax.assign('#id_content_right','innerHTML',html_content) return dajax.json() else: form=ChooseEventForm() html_content = render_to_string('events/choose_event_tdp.html',locals(),RequestContext(request)) dajax.assign('#id_content_right','innerHTML',html_content) return dajax.json()
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 checkout(request,shaastra_form=None): dajax = Dajax() if request.method=='POST' and shaastra_form != None: form = ShaastraIDForm(deserialize_form(shaastra_form)) if form.is_valid(): cleaned_form = form.cleaned_data print cleaned_form shaastraid = 'SHA14'+cleaned_form['shaastraID'] print shaastraid try: participant = UserProfile.objects.using(mainsite_db).get(shaastra_id = shaastraid) except: show_alert(dajax,"error","User with this Shaastra ID does not exist") return dajax.json() try: checkedin = IndividualCheckIn.objects.get(shaastra_ID=shaastraid) if checkedin.check_out_date: show_alert(dajax,"error","Participant has already checked out") return dajax.json() else: checkedin.check_out_date = datetime.now() checkedin.check_out_control_room = checkedin.check_in_control_room checkedin.save() room = checkedin.room room.max_number += 1 room.save() show_alert(dajax,"success","Participant checked out successfully") return dajax.json() except: show_alert(dajax,"error","Participant never checked in !") return dajax.json() else: show_alert(dajax,"error","An unexpected error has occured. Contact Webops ASAP") return dajax.json() else: form=ShaastraIDForm() html_content = render_to_string('hospi/Checkout.html',locals(),RequestContext(request)) dajax.assign('#tab4',"innerHTML",html_content) return dajax.json()
def checkin(request,indi_form=None): dajax = Dajax() if request.method == 'POST' and indi_form != None: form = ShaastraIDForm(deserialize_form(indi_form)) if form.is_valid(): cleaned_form=form.cleaned_data shaastraid = 'SHA14'+cleaned_form['shaastraID'] try: participant = UserProfile.objects.using(mainsite_db).get(shaastra_id = shaastraid) #So participant in the database can be pre-reg or junk except: new_form = RegistrationForm(initial={'shaastra_id':shaastraid}) college_form = CollegeForm() html_content = render_to_string('hospi/Register.html',locals(),RequestContext(request)) dajax.assign('#tab3',"innerHTML",html_content) return dajax.json() try: checkedin = IndividualCheckIn.objects.get(shaastra_ID=shaastraid) room = checkedin.room checkedindate = checkedin.check_in_date checkedoutdate = checkedin.check_out_date if checkoutdate: show_alert(dajax,"info","Participant was checked-in into" + str(room) + ".He has already checked-out on" + str(checkoutdate)) return dajax.json() else: show_alert(dajax,"info","Participant is already checked-in into" + str(room)) return dajax.json() except: if is_junk(shaastraid): participant.user.is_staff = False new_form = RegistrationForm(initial={'shaastra_id':shaastraid}) college_form = CollegeForm() html_content = render_to_string('hospi/Register.html',locals(),RequestContext(request)) dajax.assign('#tab3',"innerHTML",html_content) return dajax.json() else: new_form = IndividualForm(initial={'shaastra_ID':shaastraid}) html_content = render_to_string('hospi/Checkin_form.html',locals(),RequestContext(request)) dajax.assign('#tab3',"innerHTML",html_content) return dajax.json() else: show_alert(dajax,"error","Form is invalid") return dajax.json() else: form = ShaastraIDForm() html_content = render_to_string('hospi/Checkin_indi.html',locals(),RequestContext(request)) dajax.assign('#tab3',"innerHTML",html_content) return dajax.json()