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 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 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 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 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 update_event(request,form): dajax = Dajax() form = UpdateForm(deserialize_form(form)) event_object = request.user.get_profile().event all_updates = Update.objects.filter(event=event_object) major_count = 0 update_count = 0 if form.is_valid(): for u in all_updates: if u.category=='Updates' and u.expired is False: update_count = update_count + 1 print update_count elif u.category=='Major Update' and u.expired is False: major_count = major_count + 1 print major_count elif update_count>4 and u.category=='Updates': dajax.alert("This event already has 4 Updates.\ Please mark one update as Expired before adding a new update") elif major_count>1 and u.category=='Major Update': dajax.alert("This event already has one Major Update.\ Please mark the Major Update as Expired before adding another one") #Write to json here else : template = loader.get_template('events/home.html') t = template.render(RequestContext(request,locals())) return dajax.json()
def new_blog(request, form=None): """ Handles the creation of a blog post - if user not logged in, give alert Populates : Features Removes : Showcase, Sponsors """ dajax = Dajax() html_content = "" dajax.add_css_class("#showcase", "hide") dajax.add_css_class("#sponsors", "hide") if request.method == "POST": form = ThreadForm(deserialize_form(form)) print form if form.is_valid(): # check validity form.save() show_alert(dajax, "success", "Your post has been saved !") else: # form was not valid, show errors dajax.remove_css_class("#form_new_blog_post input", "error") for error in form.errors: # tell which parts had errors dajax.add_css_class("#id_%s" % error, "error") print [error for error in form.errors] show_alert(dajax, "error", "There were some errors : please rectify them") # show alert
def change_password(request,form = 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() # print deserialize_form(form) if form is None: dajax.script('$.bootstrapGrowl("Invalid password change request", {type:"danger",delay:10000} );') return dajax.json() form = ChangePasswordForm(deserialize_form(form)) if not form.is_valid(): errdict = dict(form.errors) for error in form.errors: # if str(errdict[error][0])!='This field is required.': dajax.script('$.bootstrapGrowl("%s:: %s" , {type:"error",delay:10000} );'% (str(error),str(errdict[error][0]))) dajax.script("$(\'#form_change_password #id_new_password').val('');$('#form_change_password #id_new_password_again').val('');") return dajax.json() user = request.user if not user.check_password(form.cleaned_data['old_password']): dajax.script('$.bootstrapGrowl("Please check your old password" , {type:"error",delay:10000} );') return dajax.json() user.set_password(form.cleaned_data['new_password']) profile = UserProfile.objects.get(user=request.user) user.save() profile.save() dajax.script('$.bootstrapGrowl("Your password was changed successfully!" , {type:"success",delay:30000} );') #TODO: why is the field not getting empty????? dajax.script('$("#dashboard #form_change_password #id_old_password").val("");') dajax.script('$("#dashboard #form_change_password #id_new_password").val("");') dajax.script('$("#dashboard #form_change_password #id_new_password_again").val("");') 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 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 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 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()
def submit_tdp(request,teamevent_id = None,file_tdp=None): dajax = Dajax() dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();") if teamevent_id is None or file_tdp is None: dajax.script('$.bootstrapGrowl("Invalid TDP Upload request", {type:"danger",delay:20000} );') return dajax.json() team_event =TeamEvent.objects.get(id = teamevent_id) if len(request.FILES) == 0: dajax.script('$.bootstrapGrowl("Please upload a file first!", {type:"danger",delay:20000} );') fileform = TDPFileForm(deserialize_form(file_tdp),request.FILES) try: event = teamevent.get_event() tdp = TDP(tdp=fileform,teamevent = teamevent) tdp.save() except: print return dajax.json()
def contactus(request, form = None): """ Handles the "contact us" form on the home page """ dajax = Dajax() # to hold dajax-json if request.method == 'POST': form = ContactRequestsForm(deserialize_form(form)) print form if form.is_valid(): # check validity form.save() # @Ali: clear the form after saving it, the below command didnt do it, and make the send button pseud #form = ContactRequestsForm() show_alert(dajax, "success", "Your message has been submitted. We will get back to you shortly") else: # form was not valid, show errors dajax.remove_css_class('#form_footer_contactus input', 'error') for error in form.errors: # tell which parts had errors dajax.add_css_class('#id_%s' % error, 'error') print [error for error in form.errors] show_alert(dajax, 'error', "There were some errors : please rectify them") # show alert
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 createteam(request,team_formset=None,event_pk=None): dajax=Dajax() teamformset=formset_factory(ShaastraIDForm) generic_event_instance = GenericEvent.objects.get(pk=event_pk) event_name = generic_event_instance.title if request.method=="POST" and team_formset != None: formset = teamformset(deserialize_form(team_formset)) print '111111111111111 %s' % formset if formset.is_valid(): userlist = [] for f in formset: print f cd = f.cleaned_data shaastraid='SHA14'+str(cd.get('shaastraID')) print shaastraid try: parti = UserProfile.objects.using(mainsite_db).get(shaastra_id=shaastraid) userlist.append(parti.user) except: if shaastraid == 'SHA14None': continue else: prof = create_junk_profile(shaastraid) userlist.append(prof.user) teamevent = TeamEvent(event_id=event_pk) teamevent.save(using='mainsite') teamevent.users = userlist teamevent.team_id = 'TEAM#'+str(event_name[:5])+'#'+str(teamevent.pk) teamevent.team_name = str(event_pk) teamevent.save(using='mainsite') show_alert(dajax,"success","Team Registered successfully.Team ID is %s" % str(teamevent.pk)) return dajax.json() else: show_alert(dajax,"error","Form is invalid") return dajax.json() else: show_alert(dajax,"error","Unexpected Error, Contact Webops") 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 edit_profile(request,form = None,first_name = None,last_name = None): dajax = Dajax() dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();") if form is None or first_name is None or last_name is None: dajax.script('$.bootstrapGrowl("Invalid edit profile request", {type:"danger",delay:20000} );') return dajax.json() if first_name == '' or last_name == '': dajax.script('$.bootstrapGrowl("Empty first name/last name fields not allowed", {type:"danger",delay:20000} );') return dajax.json() form = EditProfileForm(deserialize_form(form)) if not form.is_valid(): errdict = dict(form.errors) for error in form.errors: # if str(errdict[error][0])!='This field is required.': dajax.script('$.bootstrapGrowl("%s:: %s" , {type:"error",delay:20000} );'% (str(error),str(errdict[error][0]))) return dajax.json() profile = UserProfile.objects.get(user=request.user) (profile.branch,profile.mobile_number,profile.college_roll,profile.gender,profile.age) = (form.cleaned_data['branch'],form.cleaned_data['mobile_number'],form.cleaned_data['college_roll'],form.cleaned_data['gender'],form.cleaned_data['age']) profile.user.first_name = first_name profile.user.last_name = last_name profile.save() dajax.script('$.bootstrapGrowl("Your profile has been edited" , {type:"success",delay:10000,align:"center",width:"auto"} );') return dajax.json()
def remove(request,rem_form=None): dajax=Dajax() if request.method=='POST' and rem_form != None: form = RemoveRoom(deserialize_form(rem_form)) if form.is_valid(): cleaned_form=form.cleaned_data room_num = cleaned_form['room_no'] hostel = cleaned_form['hostel'] try: exist_room = AvailableRooms.objects.get(room_no=room_num,hostel=hostel) exist_room.delete() show_alert(dajax,"success","Room deleted successfully") return dajax.json() except: show_alert(dajax,"error","This room has not been added") return dajax.json() else: show_alert(dajax,"error","Form is not valid") return dajax.json() else: form=RemoveRoom() html_content = render_to_string('hospi/Remove.html',locals(),RequestContext(request)) dajax.assign('#tab5',"innerHTML",html_content) return dajax.json()
def login(request,login_form = None): dajax = Dajax() if request.user.is_authenticated(): msg_login='******' % request.user.username dajax.script('$.bootstrapGrowl("%s", {type:"danger",delay:20000} );'% msg_login ) dajax.script('$(".modal-header").find(".close").click()') return dajax.json() elif request.method == 'POST' or login_form != None: form = LoginForm(deserialize_form(login_form)) if form.is_valid() : data=form.cleaned_data username=data['username'] password=data['password'] user = authenticate(username=username, password=password) if user: if not user.is_active: msg = 'Please click the activation link sent to your registered email id to activate your account' dajax.script('$.bootstrapGrowl("%s", {type:"danger",delay:30000} );' % msg) dajax.script("$('#login_form #id_password').val('');") return dajax.json() auth_login(request, user) dajax.script('$.bootstrapGrowl("Hi %s" , {type:"success",delay:10000} );'% user.username ) dajax.script("$('#login_form #id_password').val('');") dajax.script("$('#login').modal('hide');") dajax.script('$(".modal-header").find(".close").click()') dajax.script('$("#fb_share").modal("show");') profile = UserProfile.objects.get(user=request.user) context_dash_dict = {'profile':profile,'settings':settings} html_stuff = render_to_string('dashboard/welcome.html',context_dash_dict,RequestContext(request)) dajax.script("window.location.hash = 'dashboard'") if html_stuff: dajax.assign('#content_dash','innerHTML',html_stuff) # dajax.script('$(\"#list_user_head a\").click();') #dajax.script('$(\"#list_events_head a\").click();') #dajax.script('javascript:do_accordion(\"list_user\");') # dajax.script("javascript:do_accordion('list_user')") dajax.script("$('#aboutus').hide();") dajax.assign("#dashboard #dashboard_shaastra_id","innerHTML",str(request.user.get_profile().shaastra_id)) dajax.assign("#dashboard #dashboard_full_name","innerHTML",str(request.user.get_full_name())) dajax.assign("#login_logout", "innerHTML",'<div class="btn-group">\ <button class="btn" onclick ="window.location.replace(\'#dashboard\');\ "><i class="icon-user icon-white"></i>My Dashboard \ </button></div>') dajax.remove_css_class("#dashboard","hide hidden") #display logout| edit profile on navbar return dajax.json() else: msg = 'Username and Password does not match!!!' if User.objects.filter(username=username).count()==0: msg = 'Username not created, did you want to register?' dajax.script('$.bootstrapGrowl("%s", {type:"danger",delay:20000} );' % msg) dajax.script("$('#login_form #id_password').val('');") form = LoginForm() form_registration = AddUserForm() return dajax.json() else: dajax.remove_css_class('#my_form input', 'error') for error in form.errors: dajax.add_css_class('#login_form #id_%s' % error, 'error') return dajax.json() #Code for error rendering else: dajax.script('$.bootstrapGrowl("Fill in required details", {type:"danger",delay:20000} );') #empty form case return dajax.json() return dajax.json()
def register(request,form_registration=None,college_name=None): #logged in user cannot register, but just in case dajax = Dajax() college = None new_coll = False if not college_name is None: try: college=College.objects.filter(name=str(college_name))[0] new_coll = True except: #impossible scenario!! dajax.script("$.bootstrapGrowl('You must have entered your college first!', {type:'danger',delay:10000});") dajax.script('$("#gif_registration").hide();$("#form_registration_submit").show()') return dajax.json() if request.user.is_authenticated(): msg_login = '******' % request.user.username dajax.script('$.bootstrapGrowl("Hi %s" , {type:"danger",delay:10000} );'% msg_login ) dajax.script('$("#gif_registration").hide();$("#form_registration_submit").show()') return dajax.json() if request.method=="POST" and (form_registration !=None or not college_name is None): form = AddUserForm(deserialize_form(form_registration)) if form.is_valid(): #TODO: if we change college to be a compulsory, then this must be changed dajax.remove_css_class('#form_registration input', 'error') data = form.cleaned_data new_user = User(first_name=data['first_name'],last_name=data['last_name'], username=data['username'], email=data['email']) new_user.set_password(data['password']) new_user.save() new_user.is_active = True new_user.save() x = 1400000 + new_user.id salt = sha.new(str(random.random())).hexdigest()[:5] activation_key = sha.new(salt + new_user.username).hexdigest() if college is None: userprofile = UserProfile(user=new_user,activation_key=activation_key,gender=data['gender'],age=data['age'],branch=data['branch'],mobile_number=data['mobile_number'],college=data['college'],college_roll=data['college_roll'],shaastra_id= ("SHA" + str(x)),key_expires = timezone.now()+datetime.timedelta(2)) else: userprofile = UserProfile(user=new_user,activation_key=activation_key,gender=data['gender'],age=data['age'],branch=data['branch'],mobile_number=data['mobile_number'],college=college,college_roll=data['college_roll'],shaastra_id= ("SHA" + str(x)),key_expires = timezone.now()+datetime.timedelta(2)) userprofile.save() #mail_template = get_template('email/activate.html') #body = mail_template.render( Context( { # 'username':new_user.username, # 'activationkey':userprofile.activation_key, # 'SITE_URL':settings.SITE_URL, # 'shaastra_id':userprofile.shaastra_id, # })) #TODO: empty the entire form!! #dajax.script("$('#form_registration').val('');")\ #dajax.script("$('#form_registration #id_email').val('');\ # $('#form_registration #id_password').val('');\ # $('#form_registration #id_password_again').val('');\ # $('#form_registration #id_mobile_number').val('');") #if settings.SEND_EMAILS: #subject, from_email, to = 'Your new Shaastra2014 account confirmation', '*****@*****.**', [new_user.email,] #html_content = body #text_content = strip_tags(body) #msg = EmailMultiAlternatives(subject, text_content, from_email, to) #msg.attach_alternative(html_content, "text/html") #msg.send() #send_mail('Your new Shaastra2014 account confirmation', body,'*****@*****.**', [new_user.email,], fail_silently=False) #msg='Hi, A mail has been sent to the mail id you provided. Please activate your account within 48 hours. Please also check your spam folder' msg = 'Successfully Registered ! <br /> Welcome !' # dajax.script('$(".modal-header").find(".close").click();') dajax.script('$.bootstrapGrowl("%s" , {type:"success",delay:20000} );'% msg ) dajax.script('$("#gif_registration").hide();$("#form_registration_submit").show();$("#login").modal("hide")') dajax.script('$("#form_registration #id_college_roll").attr("readonly", false);$("#form_registration #id_college_roll").val("");') return dajax.json() else: errdict=dict(form.errors) dajax.script('$.bootstrapGrowl("Oops : Following errors cropped up when you tried to register !", {type:"danger",timeout:50000} );') for error in form.errors: if str(errdict[error][0])!='This field is required.': dajax.script('$.bootstrapGrowl(" %s" , {type:"error",delay:20000} );'% str(errdict[error][0])) dajax.script("$('#form_registration #id_password').val('');") dajax.script("$('#form_registration #id_password_again').val('');") for error in form.errors: dajax.add_css_class('#form_registration #id_%s' % error, 'error') dajax.script('$("#gif_registration").hide();$("#form_registration_submit").show()') return dajax.json() if request.method == 'GET': form_registration = AddUserForm() dajax.script('$("#gif_registration").hide();$("#form_registration_submit").show()') return dajax.json() form_registration=AddUserForm() dajax.script('$("#gif_registration").hide();$("#form_registration_submit").show()') return dajax.json()
def edit_event(request, event_name=None, event_pk=None, edit_form=None): """ This function renders the "edit event" page for Event coords args : event_name - The name of the event which needs to be edited event_pk - The pk of the event which needs to be edited edit_Form - The edited form in post requests Check before savin - check if name changed, if yes : change file name An existing event can be either audience or participant event. If new event is being created, a GenericEventForm is displayed, and it can be saved with event type as audience or participant event. """ dajax = Dajax() html_content = "" event_query = None 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_pk: event_query = GenericEvent.objects.filter(pk=event_pk) elif event_name: event_query = GenericEvent.objects.filter(title=event_name) if event_query: # get event details and tab details generic_event_instance = event_query[0] event_pk = generic_event_instance.pk event_type = generic_event_instance.event_type if event_type=='Participant': event_instance = ParticipantEvent.objects.get(pk=event_pk) elif event_type=='Audience': event_instance = AudienceEvent.objects.get(pk=event_pk) else: #if no event type -- show error show_alert(dajax, "error", "There is some error with this event. Contact the WebOps team.") return dajax.json() if request.method == 'POST' and edit_form != None: if event_instance: if event_type=='Participant': form = ParticipantEventDetailsForm(deserialize_form(edit_form), instance = event_instance) elif event_type=='Audience': form = AudienceEventDetailsForm(deserialize_form(edit_form), instance = event_instance) #form = EventDetailsForm(deserialize_form(edit_form), instance = event_instance) event_name_old = event_instance.title else: form = GenericEventDetailsForm(deserialize_form(edit_form)) if form.is_valid(): # Save form and json clean_form = form.clean() # Handles the form and sql try: form.save() except EditError as error: show_alert(dajax, "error", error.value) return dajax.json() # check if event name has changed, change the event - tab title if yes. if event_instance: event_name_new = clean_form['title'] if event_name_new != event_name_old: # Change event - tab title dajax.assign("#a_event_" + str(event_instance.pk), "innerHTML", event_name_new) dajax.remove_css_class('#id_form input', 'error') show_alert(dajax, "success", "Event edited successfully") else: error_string = "<br />" dajax.remove_css_class('#id_form input', 'error') for error in form.errors: error_string += error[0].upper() + error[1:] + ": " + form.errors[error][0] + "<br />" dajax.add_css_class('input#id_%s' % error, 'error') if event_instance: if event_type=='Participant': form = ParticipantEventDetailsForm() elif event_type=='Audience': form = AudienceEventDetailsForm() else: form = GenericEventDetailsForm() show_alert(dajax, "error", error_string) #html_content = render_to_string('events/edit_event.html', locals(), RequestContext(request)) # show edit form again else: if event_instance: if event_type=='Participant': form = ParticipantEventDetailsForm(instance = event_instance) elif event_type=='Audience': form = AudienceEventDetailsForm(instance = event_instance) #form = EventDetailsForm(instance = event_instance) else: form = GenericEventDetailsForm() context_dict = {'model_instance' : event_instance, 'type' : 'event', 'form' : form} html_content = render_to_string('events/edit_form.html', context_dict, RequestContext(request)) if html_content: if event_instance: dajax.assign("#event_" + str(event_instance.pk), "innerHTML", html_content) # Populate content else: dajax.assign("#event_new", "innerHTML", html_content) # Populate content for new event return dajax.json()
def edit_tab(request, tab_pk=None, event_pk=None, edit_form=None, delete_tab=None): """ This function renders the "edit event" page for Event coords args : tab_pk - the pk of the tab being edited form - the form sent in post request event_pk - pk of event the tab belongs to. must exist. delete_tab - indicates whether to delete the tab or not Check before savin - check if name changed, if yes : change file name In the form : event - got from event_pk title, desc, pref - got from form """ dajax = Dajax() html_content = "" new_tab_created = False if tab_pk: tab_instance = Tab.objects.get(pk=tab_pk) else: tab_instance = None if event_pk: generic_event_instance = GenericEvent.objects.get(pk=event_pk) event_type = generic_event_instance.event_type if event_type=='Participant': event_instance = ParticipantEvent.objects.get(pk=event_pk) elif event_type=='Audience': event_instance = AudienceEvent.objects.get(pk=event_pk) else: show_alert(dajax, "error", "There is some error with this event. Contact the WebOps team.") return dajax.json() else: show_alert(dajax, "error", "There is some problem with this tab. Contact WebOps team.") return dajax.json() if request.method == 'POST' and edit_form != None: if tab_instance: # Old tab being edited form = TabDetailsForm(deserialize_form(edit_form), instance = tab_instance) tab_name_old = tab_instance.title else: # New tab form = TabDetailsForm(deserialize_form(edit_form)) new_tab_created = True if form.is_valid(): # Save form and json clean_form = form.clean() # Handles the form and sql try: form.save(event_inst = event_instance) except EditError as error: show_alert(dajax, "error", error.value) return dajax.json() # change tab name if it has changed if tab_instance: tab_name_new = clean_form['title'] if tab_name_new != tab_name_old: # Change tab title dajax.assign("#a_tab_" + str(tab_instance.pk), "innerHTML", tab_name_new) if new_tab_created: # Note : need to make this better. Currently, it'll refresh the whole left content. It's better to add what's required only... dajax.script("$('#list_eventpage_eventinfo').find('a').click();") dajax.remove_css_class('#id_form input', 'error') show_alert(dajax, "success", "Tab edited successfully") else: error_string = "<br />" dajax.remove_css_class('#id_form input', 'error') for error in form.errors: error_string += error[0].upper() + error[1:] + ": " + form.errors[error][0] + "<br />" dajax.add_css_class('#id_%s' % error, 'error') form = TabDetailsForm() show_alert(dajax, "error", error_string) #html_content = render_to_string('events/edit_tab.html', locals(), RequestContext(request)) # show edit form again elif request.method == 'POST' and delete_tab == 'delete': if tab_instance: try: tab_instance.delete() except EditError as error: show_alert(dajax, "error", error.value) return dajax.json() # Note : need to make this better. Currently, it'll refresh the whole left content. It's better to add what's required only... show_alert(dajax, "success", "Tab deleted successfully") dajax.script("$('#list_eventpage_eventinfo').find('a').click();") else: show_alert(dajax, "error", "There is some problem with deleting this tab. Contact the WebOps Team.") return dajax.json() else: if tab_instance: form = TabDetailsForm(instance = tab_instance) else: form = TabDetailsForm() context_dict = {'model_instance' : tab_instance, 'type' : 'tab', 'tab_event_pk': event_pk, 'form' : form} html_content = render_to_string('events/edit_form.html', context_dict, RequestContext(request)) if html_content : if tab_instance: dajax.assign("#tab_" + str(tab_instance.pk), "innerHTML", html_content) # Populate content else: dajax.assign("#tab_new", "innerHTML", html_content) # Populate content dajax.script("display_editor('id_text');") # give id of the form textarea to display_editor function return dajax.json()
def team_checkout(request,team_form=None): dajax=Dajax() if request.method == 'POST' and team_form != None: form = TeamCheckoutForm(deserialize_form(team_form)) if form.is_valid(): cleaned_form = form.cleaned_data check_out_control_room = cleaned_form['check_out_control_room'] event_name = cleaned_form['event'] actual_name = event_name[:5] team_id_num = cleaned_form['team_id_num'] team_id = 'TEAM#'+str(actual_name)+'#'+str(team_id_num) team_instance = TeamEvent.objects.using(mainsite_db).get(team_id=team_id) if check_out_control_room == 'Godav': users_in_team = team_instance.users.all() for user_ex in users_in_team: shaastraid = user_ex.userprofile_set.all()[0].shaastra_id 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 room = checkedin.room room.max_number += 1 room.save() checkedin.save() except: show_alert(dajax,"error","Not checked in") return dajax.json() show_alert(dajax,"success","Team Checked out") return dajax.json() else: users_in_team = team_instance.users.all() for user_ex in users_in_team: shaastraid = user_ex.userprofile_set.all()[0].shaastra_id 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","Checked out successfully") except: show_alert(dajax,"error","Not checked in") return dajax.json() return dajax.json() else: show_alert(dajax,"error","Form is invalid") return dajax.json() else: form = TeamCheckoutForm() html_content = render_to_string('hospi/TeamCheckout.html',locals(),RequestContext(request)) dajax.assign('#tab8',"innerHTML",html_content) return dajax.json()
def team(request,team_form=None): dajax=Dajax() if request.method=="POST" and team_form != None: form = TeamCheckinForm(deserialize_form(team_form)) if form.is_valid(): cleaned_form=form.cleaned_data check_in_control_room = cleaned_form['check_in_control_room'] event_name = cleaned_form['event'] generic_event_instance = GenericEvent.objects.get(title=event_name) event_pk = generic_event_instance.pk actual_name = event_name[:5] team_id_num = cleaned_form['team_id_num'] team_id = 'TEAM#'+str(actual_name)+'#'+str(cleaned_form['team_id_num']) print team_id team_instance = TeamEvent.objects.using(mainsite_db).get(team_id=team_id) if check_in_control_room=='Godav': userlist = [] checkedlist = [] shalist=[] checkedin_shalist = [] users_in_team = team_instance.users.all() for user_ex in users_in_team: shaastraid = user_ex.userprofile_set.all()[0].shaastra_id try: checkedin_already = IndividualCheckIn.objects.get(shaastra_ID=shaastraid) if user_ex.userprofile_set.all()[0].gender == 'M': checkedlist.append(user_ex.userprofile_set.all()[0]) checkedin_shalist.append(user_ex.userprofile_set.all()[0].shaastra_id) else: pass except: if user_ex.userprofile_set.all()[0].gender == 'M': userlist.append(user_ex.userprofile_set.all()[0]) shalist.append(user_ex.userprofile_set.all()[0].shaastra_id) tcheckinformset = modelformset_factory(IndividualCheckIn,form=IndividualForm,extra=len(userlist)) formset = tcheckinformset(queryset=IndividualCheckIn.objects.filter(shaastra_ID__in = checkedin_shalist),initial=[{'shaastra_ID':sid,'check_in_control_room':'Godav','check_out_control_room':'Godav'} for sid in shalist]) 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/TeamDisplay.html',locals(),RequestContext(request)) dajax.assign('#tab7',"innerHTML",html_content) return dajax.json() else: userlist = [] shalist=[] checkedlist =[] checkedin_shalist =[] users_in_team = team_instance.users.all() for user_ex in users_in_team: shaastraid = user_ex.userprofile_set.all()[0].shaastra_id try: checkedin_already = IndividualCheckIn.objects.get(shaastra_ID=shaastraid) if user_ex.usreprofile_set.all()[0].gender == 'F': checkedlist.append(user_ex.userprofile_set.all()[0]) checkedin_shalist.append(user_ex.userprofile_set.all()[0].shaastra_id) else: pass except: if user_ex.userprofile_set.all()[0].gender == 'F': userlist.append(user_ex.userprofile_set.all()[0]) shalist.append(user_ex.userprofile_set.all()[0].shaastra_id) tcheckinformset = modelformset_factory(IndividualCheckIn,form=IndividualForm,extra=len(userlist)) formset = tcheckinformset(queryset=IndividualCheckIn.objects.filter(shaastra_ID__in=checkedin_shalist),initial=[{'shaastra_ID':sid,'check_in_control_room':'Sharavati','check_out_control_room':'Sharavati'} for sid in shalist]) 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/TeamDisplay.html',locals(),RequestContext(request)) dajax.assign('#tab7',"innerHTML",html_content) return dajax.json() else: print form.errors show_alert(dajax,"error","Form is invalid") return dajax.json() else: form = TeamCheckinForm() html_content = render_to_string('hospi/TeamCheckin.html',locals(),RequestContext(request)) dajax.assign("#tab7","innerHTML",html_content) return dajax.json()