コード例 #1
0
ファイル: ajax.py プロジェクト: shahidhk/robocon_iitm
def show_blog(request, primkey=None):
    """
        Shows the blog entries on the page
        
        Populates : Features
        
        Removes : Showcase, Sponsors
    """
    dajax = Dajax()

    dajax.add_css_class("#showcase", "hide")
    dajax.add_css_class("#sponsors", "hide")

    html_content = ""

    if primkey:
        pass
        show_alert(dajax, "info", "This part has not yet been completed")
    else:
        bloglist = Thread.objects.all()
        # print bloglist
        for i in bloglist:
            i.description = (i.description[:100] + " ....") if len(i.description) > 100 else i.description
        html_content = render_to_string("blog/show.html", {"bloglist": bloglist}, RequestContext(request))

    if html_content:
        dajax.assign("#features", "innerHTML", html_content)

    return dajax.json()
コード例 #2
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
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()
コード例 #3
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
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()
コード例 #4
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
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()
コード例 #5
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
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()
コード例 #6
0
def add_college(request,college=None,city=None,state=None):
    dajax = Dajax()
    dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();")    
    #: if user has chosen a college in dropdown, depopulate it OR growl
    if city is None or college is None or state is None or city =='' or college =='' or state =='':
        dajax.script('$.bootstrapGrowl("Please enter relevant details for adding your college", {type:"danger",delay:10000});')
        return dajax.json()
    else:
        try:
            College.objects.get(name__iexact=college)
            dajax.script('$.bootstrapGrowl("Your college is already on our list, please check again", {type:"danger",delay:10000});')
            return dajax.json()
        except:
            coll=None
        dajax.script('$("#add_college").modal(\'hide\');')
        dajax.script('$("#login").show();')
        coll=College(name=college,city=city,state=state)
        try:
            if clean_coll(coll.name) and clean_coll(coll.city):
                coll.save()
            else:
                dajax.script('$.bootstrapGrowl("Please refrain from using profanity", {type:"danger",delay:10000});')
                return dajax.json()
        except:
            coll.save()
        dajax.assign("#add_coll_name",'innerHTML','%s'% college)
        dajax.assign("#add_coll_result",'innerHTML','College:')
        #dajax.script("$('#college')[0]value = '%s'" % college)
        dajax.script('$.bootstrapGrowl("Your college:<strong>%s</strong> was added. Welcome", {type:"success",delay:10000} );'% str(coll.name) )
        # : populate the id_college with the given college details?
        dajax.script("$('#add_coll_message').toggle();")
        dajax.script("$('#form_registration #id_college').toggle();")
        dajax.script("$('#add_coll_form').toggle();")
#    colllist=College.objects.all()
    return dajax.json()
コード例 #7
0
def show_event_tdp(request,teamevent_id=None):
    dajax = Dajax()
    dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();")    
    if teamevent_id is None:
        dajax.script('$.bootstrapGrowl("Invalid request to view teamevent details", {type:"danger",delay:20000} );')
        return dajax.json()
    try:
        temp = int(teamevent_id)
    except:
        dajax.script('$.bootstrapGrowl("Invalid request to view teamevent details", {type:"danger",delay:20000} );')
        return dajax.json()
    if not request.user.is_authenticated():
        dajax.script('$.bootstrapGrowl("Login to view your event submission details", {type:"danger",delay:20000} );')
        return dajax.json()
    else:
        profile = UserProfile.objects.get(user=request.user)
        try:
            team_event = TeamEvent.objects.get(id=int(teamevent_id))
        except:
            dajax.script('$.bootstrapGrowl("Invalid request", {type:"danger",delay:20000} );')
            return dajax.json()
        now = timezone.now()
        context_dict = {'teamevent':team_event,'profile':profile,'now':now,'TDPFileForm':TDPFileForm(),'settings':settings}
        
        html_stuff = render_to_string('dashboard/event_tdp_submit.html',context_dict,RequestContext(request))
        if html_stuff:
            dajax.assign('#content_dash','innerHTML',html_stuff)
            #dajax.script('$("#event_register").modal("show");')
    return dajax.json()
コード例 #8
0
def show_tdp_submissions(request):
    dajax = Dajax()
    dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();")
    if not request.user.is_authenticated():
        dajax.script('$.bootstrapGrowl("Login to view your registered events", {type:"danger",delay:20000} );')
        return dajax.json()
    else:
        profile = UserProfile.objects.get(user=request.user)
        team_event_list = profile.get_regd_events()
        tdp_submission_list = []
        for teamevent in team_event_list:
            if teamevent.get_event().has_tdp and teamevent.has_submitted_tdp:
                tdp_submission_list.append(teamevent)
        no_regd = len(tdp_submission_list)
        now = timezone.now()
        title_tdp = 'Your successful TDP Submissions'
        context_dict = {'tdp_submission_list':tdp_submission_list,'profile':profile,'now':now,'no_regd':no_regd,'settings':settings,'title_tdp':title_tdp}
        html_stuff = render_to_string('dashboard/list_tdp_submission.html',context_dict,RequestContext(request))
        if html_stuff:
            dajax.assign('#content_dash','innerHTML',html_stuff)
            #dajax.script('$("#event_register").modal("show");')
    msg_file_upload = request.session.get('file_upload','')
    if msg_file_upload != '':
        del request.session['file_upload']
        print msg_file_upload
        print str(msg_file_upload).startswith('TDP Upload Successful') 
        if str(msg_file_upload).startswith('TDP Upload Successful'):
            dajax.script('$.bootstrapGrowl("%s", {type:"success",delay:20000} );'% msg_file_upload)
        else:
            dajax.script('$.bootstrapGrowl("FileUpload Error: %s", {type:"danger",delay:20000} );'% msg_file_upload)
    return dajax.json()
コード例 #9
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
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()
コード例 #10
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
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()
コード例 #11
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
def roommap(request,hostel_name):  
    
    dajax = Dajax()
    hostel_selected = AvailableRooms.objects.filter(hostel=hostel_name).order_by('room_no')
    html_content =  render_to_string('hospi/RoomMap.html', locals(),RequestContext(request))
    dajax.remove_css_class=('#id_modal','hide')
    dajax.assign('#id_modal',"innerHTML",html_content)
    return dajax.json()
コード例 #12
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
def hello_world(request):
    """
        Used for testing Dajax + Dajaxice
    """
    dajax = Dajax()
    dajax.assign('#id_content','innerHTML', "Hello world !")
    #dajax.alert("Hello World!")
    return dajax.json()
コード例 #13
0
def logout(request,**kwargs):
    dajax = Dajax()
    auth_logout(request)
    dajax.script('$.bootstrapGrowl("Successfully logged out!", {type:"success",delay:10000});' )
    dajax.assign("#login_logout", "innerHTML", '<a href="#login" onclick="$(\'#login\').modal(\'show\');">Login | Sign Up </a>')
    dajax.add_css_class("#dashboard","hide hidden")
    dajax.script("window.location.hash = 'events';")
    return dajax.json()
コード例 #14
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
def select_event_type(request, event_name=None, event_pk=None, event_type_selected=None):
    """
        This function changes type of the event from GenericEvent  to Audience or Participant event based on input from the coord
        
        You can query based on name or pk.
    """
    dajax = Dajax()
    json_dict = {}
    event_instance = None
    
    # Argument validation
    if not ( event_name or event_pk ): # Neither arg given
        show_alert(dajax, "error", "There is some error on the site, please report to WebOps team")
        return dajax.json()
    elif event_name and event_pk: # Both args given ..
        show_alert(dajax, "error", "There is some error on the site, please report to WebOps team.")
        return dajax.json()
    elif event_pk:
        event_query = GenericEvent.objects.filter(pk=event_pk)
    elif event_name:
        event_query = GenericEvent.objects.filter(title=event_name)
    
    if event_query:
        generic_event_instance = event_query[0]
        event_pk = generic_event_instance.pk
        event_instance = GenericEvent.objects.get(pk=event_pk)
    else:
        show_alert(dajax, "error", "This event has not been created on the site. Contact WebOps team.")
        return dajax.json()
    
    if event_type_selected:
        if event_type_selected=='Participant':
            p_event_instance = ParticipantEvent()
            p_event_instance.pk = event_instance.pk
            p_event_instance.title = event_instance.title
            p_event_instance.category = event_instance.category
            p_event_instance.event_type = 'Participant'
            p_event_instance.save()
            request.user.get_profile().event = p_event_instance
            #form = ParticipantEventDetailsForm(deserialize_form(edit_form), instance = event_instance)
        elif event_type_selected=='Audience':
            a_event_instance = AudienceEvent()
            a_event_instance.pk = event_instance.pk
            a_event_instance.title = event_instance.title
            a_event_instance.category = event_instance.category
            a_event_instance.event_type = 'Audience'
            a_event_instance.save()
            request.user.get_profile().event = a_event_instance
        dajax.script("location.reload();")
    else:
        context_dict = {'model_instance' : event_instance}
        html_content = render_to_string('events/select_event_type.html', context_dict, RequestContext(request))
        dajax.assign("#id_content_right", "innerHTML", html_content) # Populate content
    
    return dajax.json()
コード例 #15
0
def back(request):
    dajax = Dajax()
    dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();")    
    no_regd = len(request.user.get_profile().get_regd_events())
    reco_events = ParticipantEvent.objects.using(erp_db).filter(registrable_online=True)
#    reco_events = registrable_events(time = timezone.now(),user = request.user)
    context_dict = {'profile':request.user.get_profile(),'no_regd':no_regd,'reco_events':reco_events}
    html_stuff = render_to_string('dashboard/default.html',context_dict,RequestContext(request))
    if html_stuff:
        dajax.assign('#content_dash','innerHTML',html_stuff)
    return dajax.json()
コード例 #16
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
def contacts(request):
    """
        Used to show table of all members participating in shaastra
        It creates a table for this.
        
        Renders in : right_content
        Refreshes : null
        
        EVERYONE :
            It can be seen by anyone who has signed in
            
        QUERIES TO RETRIEVE:
            1.  Every user's:
                > Name
                > Department
                > Designation
                > Contact
                > Link to profile
    """
    dajax = Dajax() # To hold the json
    
    userprofile = request.user.get_profile()
# Query dictionary will contain UserProfile and the table to be drawn
    query_dictionary = {} # Initialize a blank Query dictionary.
    query_dictionary["userprofile"] = userprofile
    query_dictionary["TASK_STATUSES"] = TASK_STATUSES # To search for status msg
    html_content = ""
    
    # ALL QUERYSETS OF TASKS FILTERED FOR THE USER MUST BE AGAIN FILTERED BY DEPARTMENT (the way I've done it for user_tasks). THIS HANDLES THE MULTIPLE IDENTITY DISORDER.
    # Assigning the above values
    # ALL
    all_users = ERPUser.objects.all()
    query_dictionary["users_info"] = []
    for u in all_users:
        user_info = { 
                        'iden' : u.id,
                        'name' : u.user.first_name + " " + u.user.last_name,
                        'dept' : u.get_dept_subdept(),
                        'desig' : u.get_position(),
                        'ph_mad' : u.chennai_number,
                        'ph_home' : u.summer_number,
                        'email' : u.user.email
                    }
        query_dictionary['users_info'].append(user_info)
    html_content = render_to_string("dash/contacts.html", query_dictionary, RequestContext(request))
        
    if html_content != "": 
        # put html generated above into json if not null
        # if null, alert has already been taken care of
        dajax.assign('#id_content_right','innerHTML', html_content)
    
    
    
    return dajax.json()
コード例 #17
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
def contact_us(request):
    """
        Used to populate the Modal with Contact Us page
    """
    dajax = Dajax()
    
    html_content = render_to_string("common/contact_us.html", locals(), RequestContext(request))
    dajax.remove_css_class('#id_modal', 'hide') # Show modal
    dajax.assign("#id_modal", "innerHTML", html_content) # Populate modal
    #print "added"
    
    return dajax.json()
コード例 #18
0
def add_member(request,shaastra_id = None,teamevent_id = None):
    dajax = Dajax()
    dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();")
    if not request.user.is_authenticated():
        dajax.script('$.bootstrapGrowl("Login First",{type:"danger",delay:10000})')
        return dajax.json()
    if teamevent_id is None or shaastra_id is None:
        dajax.script('$.bootstrapGrowl("Invalid request",{type:"danger",delay:10000})')
        return dajax.json()
    try:
        teamevent = TeamEvent.objects.get(id = teamevent_id)
        print shaastra_id   
        user = UserProfile.objects.get(shaastra_id = shaastra_id).user
        if request.user not in teamevent.users.all():
            dajax.script('$.bootstrapGrowl("Invalid request: user not part of team",{type:"danger",delay:10000})')
            #Malicious attempt!?
            return dajax.json()
        if user in teamevent.users.all():
            dajax.script('$.bootstrapGrowl("Invalid request: User is already on the team, you cannot add again.",{type:"danger",delay:10000})')
            return dajax.json()
        #User cannot be added if on another team
        msg,team_name = has_team(user,teamevent.event_id)
        if msg == 'has_team':
            dajax.script('$.bootstrapGrowl("Invalid request: User is already on another team for this event. Multiple entries are prohibited.   ",{type:"danger",delay:10000})')
            return dajax.json()
        #The below statement will not be used, but, for malicious attempts to modify input params, we need it
        if user.username == request.user.username:
            dajax.script('$.bootstrapGrowl("Invalid request: You are already on the team.",{type:"danger",delay:10000})')
            return dajax.json()
        if teamevent.size() == teamevent.get_event().team_size_max:
            dajax.script('$.bootstrapGrowl("Sorry. Add member failed.You cannot have more than %s team members in your team.",{type:"danger",delay:10000})'% teamevent.get_event().team_size_min)
            return dajax.json()
        teamevent.users.add(user)
        teamevent.save()
        msg_update = 'Teammate %s was add to team %s for event %s on %s by %s'%(user.get_full_name(),teamevent.team_name,teamevent.get_event().title,str(timezone.now()),request.user.get_full_name())
        for user_team in teamevent.users.all():
            if not user_team.username == user.username:
                update = Update(tag = 'Team Edit',content = msg_update,user = user_team)
                update.save()
        msg_update_user = '******'%(teamevent.team_name,teamevent.get_event().title,str(timezone.now()),user.get_full_name())
        update = Update(tag = 'Team Add',content = msg_update_user,user = user)
        update.save()
        dajax.script('$.bootstrapGrowl("Addition success! %s has been added as a member of team %s",{type:"info",delay:10000,width:"auto"})'% (user.get_full_name(),teamevent.team_name))
        #TODO: Update create
        html_stuff = render_to_string('dashboard/welcome.html',{},RequestContext(request))
        if html_stuff:
            dajax.assign('#content_dash','innerHTML',html_stuff)
        return dajax.json()

    except:
        dajax.script('$.bootstrapGrowl("Invalid request. Check Shaastra ID entered",{type:"danger",delay:10000})')
        return dajax.json()
    return dajax.json()
コード例 #19
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
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()
コード例 #20
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
def view_tdp(request,event_pk=None):
    dajax = Dajax()
    #get tdp objects from mainsite code
    #import get_tdp_event on top and this takes in event as argument
    #display in a table name and path to file
    event = ParticipantEvent.objects.get(pk=event_pk)
    tdplist = []
    for tdp in TDP.objects.using(mainsite_db).filter(teamevent__event_id = event_pk):
        tdplist.append((tdp,tdp.teamevent.team_id))

    html_content = render_to_string('events/view_tdp.html',locals(),RequestContext(request))
    dajax.assign('#id_content_right','innerHTML',html_content)
    return dajax.json()
コード例 #21
0
def add_member_form(request,teamevent_id = None):
    dajax = Dajax()
    dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();")
    if teamevent_id is None:
        return dajax.json()
    try:
        teamevent = TeamEvent.objects.get(id = teamevent_id)
    except:
        return dajax.json()
    html_stuff = render_to_string('dashboard/add_member.html',{'teamevent':teamevent},RequestContext(request))
    if html_stuff:
        dajax.assign('#content_dash','innerHTML',html_stuff)
    return dajax.json()
コード例 #22
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
def display_task(request, primkey, comments_field=None):
    """
        Displays a task to viewers with a commet field
        It handles the displaying of all tasks : intra and cross
        
        The post method handles the receiving of a submitted comment and saves it
        
        Renders in : modal
        Refreshes : if new comment added, refreshed content of modal
    """
    # TODO: Redirect people who aren't allowd to view this task. 
    # Add edit and delete buttons for cores and supercoords
    # Display ALL details in the template - template needs work.
    print primkey
    dajax = Dajax()
    html_content = ""
    primkey = int(primkey)
    
    # Save comment if new comment given
    
    # Get Task + comments and populate
    try:
        task = Task.objects.get(pk = primkey)
        task_statuses = TASK_STATUSES
        print "task"
        if request.method == 'POST' and comments_field != None: # Add new comment if necessary
            if comments_field == "":
                dajax.add_css_class("#comments_field", "error")
            else :
                task_comment = Comment()
                task_comment.task = Task.objects.filter(id = task.id)[0]
                task_comment.author = request.user
                task_comment.comment_string = comments_field
                task_comment.time_stamp = datetime.datetime.now()
                task_comment.save()
        print "check comment"        
        if ( comments_field != "" and comments_field != None ) or request.method == 'GET': 
            print "true"
            # i.e. if "Submit Comment" was pressed, and comment was given OR GET ... need to refresh
            comments = Comment.objects.filter(task = task)
            html_content = render_to_string('tasks/display.html', locals(), RequestContext(request))
            print html_content
            dajax.remove_css_class('#id_modal', 'hide') # Show modal
            dajax.assign("#id_modal", "innerHTML", html_content) # Populate modal
        print "done"
    except:
        show_alert(dajax, "error", "The task was not found")
        html_content = ""
    
    return dajax.json()
コード例 #23
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
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()
コード例 #24
0
def change_password_form(request):
    dajax = Dajax()
    dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();")
    #: if user has chosen a college in dropdown, depopulate it OR growl
    if not request.user.is_authenticated():
        dajax.script('$.bootstrapGrowl("Login First!", {type:"danger",delay:10000} );')
        return dajax.json()
    profile = UserProfile.objects.get(user=request.user)
    change_password_form = ChangePasswordForm()
    context_dict = {'form_change_password':change_password_form,'profile':profile,'settings':settings}
    html_stuff = render_to_string('dashboard/change_password.html',context_dict,RequestContext(request))
    if html_stuff:
        dajax.assign('#content_dash','innerHTML',html_stuff)
        #dajax.script('$("#event_register").modal("show");')
    return dajax.json()
コード例 #25
0
def show_updates(request):
    dajax = Dajax()
    dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();")
    if not request.user.is_authenticated():
        dajax.script('$.bootstrapGrowl("Login to view your registered events", {type:"danger",delay:20000} );')
        return dajax.json()
    else:
        profile = request.user.get_profile()
        updates_list = list(Update.objects.filter(user = request.user).order_by('tag'))
        #TODO: order by time??: 
        no_updates = len(updates_list)
        now = timezone.now()
        context_dict = {'updates_list':updates_list,'profile':profile,'now':now,'no_updates':no_updates,'settings':settings}
        html_stuff = render_to_string('dashboard/list_updates.html',context_dict,RequestContext(request))
        if html_stuff:
            dajax.assign('#content_dash','innerHTML',html_stuff)
            #dajax.script('$("#event_register").modal("show");')
    return dajax.json()
コード例 #26
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
def display_profile(request, userid=None):
    """
        Used to show profile using Dajax(ice)
        Renders in : modal
        Refreshes : none
    """
    dajax = Dajax()
    profile_dict = dict ()
    profile_dict['userexists'] = True
    html_content = ""
    
    try:
        if userid == None:
            profile = request.user.get_profile()
        else:
            profile = ERPUser.objects.get ( pk = userid )
        
        # Profile seems to exist, get data
        userprofile = request.user.get_profile()
        
        profile_dict['nickname'] = profile.nickname
        profile_dict['position'] = get_position ( profile )
        profile_dict['fullname'] = profile.user.get_full_name()
        profile_dict['chennaino'] = profile.chennai_number
        profile_dict['summerno'] = profile.summer_number
        profile_dict['summerstay'] = profile.summer_stay
        profile_dict['hostel'] = profile.hostel
        profile_dict['roomno'] = str(profile.room_no)
        
        #This is a flag which indicates that the profile being viewed is the user's own. Hence there will be 
        #a button to edit.
        profile_dict['ownprofile'] = ( profile == userprofile )
        
        # Render the template with given info
        html_content = render_to_string('users/view_profile.html', profile_dict, RequestContext(request))
    
    except:
        # Profile given was invalid.
        profile_dict['userexists'] = False
        html_content = render_to_string('users/view_profile.html', locals(), RequestContext(request))
    
    dajax.remove_css_class('#id_modal', 'hide') # Show modal
    dajax.assign('#id_modal','innerHTML', html_content) # Populate modal
    return dajax.json()
コード例 #27
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
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()
コード例 #28
0
def remove_member(request,user_id = None,teamevent_id = None):
    dajax = Dajax()
    dajax.script("$(\'#dashboard #loading_dash_dajax\').hide();")
    if not request.user.is_authenticated():
        dajax.script('$.bootstrapGrowl("Login First",{type:"danger",delay:10000})')
        return dajax.json()
    if teamevent_id is None or user_id is None:
        dajax.script('$.bootstrapGrowl("Invalid request",{type:"danger",delay:10000})')
        return dajax.json()
    try:
        teamevent = TeamEvent.objects.get(id = teamevent_id)
        user = User.objects.get(id = user_id)
        if user not in teamevent.users.all() or request.user not in teamevent.users.all():
            dajax.script('$.bootstrapGrowl("Invalid request: user not part of team",{type:"danger",delay:10000})')
            #Malicious attempt!?
            return dajax.json()
        if teamevent.size() == teamevent.get_event().team_size_min:
            dajax.script('$.bootstrapGrowl("Sorry. Remove failed.You cannot have less than %s team members",{type:"danger",delay:10000})'% teamevent.get_event().team_size_min)
            return dajax.json()
        teamevent.users.remove(user)
        teamevent.save()
        msg_update = 'Your teammate %s was removed from team %s for event %s on %s by %s'%(user.get_full_name(),teamevent.team_name,str(timezone.now()),request.user.get_full_name())
        for user_team in teamevent.users.all():
            update = Update(tag = 'Team Edit',content = msg_update,user = user_team)
            update.save()
        msg_update_user = '******'%(teamevent.team_name,teamevent.get_event().title,str(timezone.now()),request.user.get_full_name())
        update = Update(tag = 'Team Remove',content = msg_update_user,user = user)
        update.save()
        dajax.script('$.bootstrapGrowl("Removal succesrs! %s is no longer a member of team %s",{type:"info",delay:10000,width:"auto"})'% (user.get_full_name(),teamevent.team_name))
        #TODO: Update create
        msg_dash = "Removal success! %s is no longer a member of team %s"% (user.get_full_name(),teamevent.team_name)
        html_stuff = render_to_string('dashboard/welcome.html',{'msg_dash':msg_dash},RequestContext(request))
        if html_stuff:
            dajax.assign('#content_dash','innerHTML',html_stuff)
    
        return dajax.json()
    except:
        dajax.script('$.bootstrapGrowl("Invalid request. ",{type:"danger",delay:10000})')    
        return dajax.json()
    return dajax.json()
コード例 #29
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
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()
コード例 #30
0
ファイル: ajax.py プロジェクト: ShaastraWebops/ERP14
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()