Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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()
Exemplo n.º 3
0
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()
Exemplo n.º 4
0
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()
Exemplo n.º 5
0
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()
Exemplo n.º 6
0
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()
Exemplo n.º 7
0
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()
Exemplo n.º 9
0
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()
Exemplo n.º 10
0
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()
Exemplo n.º 11
0
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()
Exemplo n.º 12
0
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()
Exemplo n.º 14
0
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
Exemplo n.º 15
0
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()
Exemplo n.º 16
0
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()
Exemplo n.º 17
0
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()
Exemplo n.º 19
0
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&nbsp;&nbsp;\
                </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()
Exemplo n.º 22
0
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()
Exemplo n.º 23
0
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()
Exemplo n.º 24
0
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()
Exemplo n.º 25
0
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()