コード例 #1
0
ファイル: views.py プロジェクト: nsrcelrecords/vms
def get_dataset(ufile):
    #stream = ufile.read().decode('utf-8')
    stream = ufile.read().decode('ISO-8859-1')
    #print('stream',stream)
    lines = stream.split('\r\n')
    logger.info('%d lines found in imported file %s', len(lines), ufile)
    #print('lines',lines)
    hdr = None
    val = []
    for x in range(len(lines)):
        if x == 0:
            hdr = lines[x].split(',')
        else:
            val.append(lines[x].split(','))
    #print('hdr',hdr)
    #val = val[:-1]
    #print('val',val)

    dataset = Dataset(headers=hdr)
    for i in range(len(val)):
        try:
            dataset.append(val[i])
        except:
            logger.warning('Ingnoring row %d due to errors', i + 1)

    logger.debug('dataset.csv : %s', dataset.csv)
    return dataset
コード例 #2
0
ファイル: views.py プロジェクト: nsrcelrecords/vms
    def get(self, request):

        otp_dict = None

        if self.utype == UserType.PARTICIPANT:
            otp_dict = user_otp

        else:
            otp_dict = visitor_otp

        logger.debug(
            'In otp handler : get otp_dict entries before get_otp \n%s\n',
            pp.pformat(otp_dict))

        if self.get_otp(otp_dict, request):
            form = OtpForm()
            logger.info('user %s attemptting to access otp page session id %s',
                        self.utype.name, self.ss_key)
            logger.debug(
                'In otp handler : get otp_dict entries after get_otp \n%s\n',
                pp.pformat(otp_dict))
            return render(
                request, 'cricket/get_otp.html', {
                    'form': form,
                    'count': otp_dict[self.ss_key]['count'],
                    'baseurl': settings.SITE_URL,
                    'remove_header': True,
                })

        else:
            logger.info('Calling session expired function')
            session_expired(self.ss_key, otp_dict)
            return HttpResponse(
                "You exceeded number of tries. Please try after sometime")
コード例 #3
0
ファイル: models.py プロジェクト: nsrcelrecords/vms
def issue_new_vtoken(name, email, mobile, refer):
    status = tStatus.UNKNOWN_ERROR
    vtoken = None
    issued_token = get_issued_valid_token_for_visitor(mobile)
    status_str = None

    if issued_token:
        vtoken = issued_token
        logger.debug('Valid issued token found for visitor %s : %d',
                     vtoken.issued_to, vtoken.mobile_number)
        status = tStatus.TOKEN_REISSUED
        status_str = 'OLD'

    else:
        vtoken = get_next_vtoken()
        if vtoken:
            vtoken.token_state = ccfg.TokenState.ISSUED.value
            vtoken.issued_on = dt.date.today()
            vtoken.issued_to = name
            vtoken.email_address = email
            vtoken.mobile_number = mobile
            vtoken.refered_by = refer
            vtoken.save()
            logger.info('%s token issued to %d', vtoken.userid, mobile)
            status = tStatus.SUCCESS
            status_str = 'NEW'

        else:
            status = tStatus.TOKEN_EXHAUSTED
            logger.critical('Visitor token exhausted %d', mobile)

    if vtoken:
        sa.send_token(mobile, status_str, vtoken.userid, vtoken.password)
    return status, vtoken
コード例 #4
0
ファイル: views.py プロジェクト: nsrcelrecords/vms
    def post(self, request):
        user = request.user.username
        self.tparams['baseurl'] = settings.SITE_URL
        if not self.render_url:
            self.render_url = 'INTERNAL_ERROR'

        logger.info('%s posting %s', user, self.render_url)
        logger.debug('template parameters %s', tuple(self.tparams))
        return render(request, self.url_lookup[self.render_url], self.tparams)
コード例 #5
0
ファイル: views.py プロジェクト: nsrcelrecords/vms
def session_expired(session_id, otp_dict):

    if session_id in otp_dict.keys():
        logger.info('Deleting otp dict entry %s for %s',
                    pp.pformat(otp_dict[session_id]), session_id)
        otp_dict[session_id]['thandle'].cancel()
        del otp_dict[session_id]['thandle']
        otp_dict.pop(session_id, None)
        logger.debug('In session expired : otp dict entries after pop \n%s\n',
                     pp.pformat(otp_dict))

    else:
        logger.warning('Session id %d not found in otp_dict %s', session_id,
                       otp_dict)
コード例 #6
0
def get_next_venture_id(year):
    vlist = VentureId.objects.filter(year=year)

    if not vlist:
        logger.debug('Creating new venture id for year %d', year)
        vid = VentureId()
        vid.year = year
        vid.counter = 1

    else:
        vid = vlist[0]
        vid.counter += 1
        logger.debug('Increasing venture id %d for year %d', vid.counter, year)

    vid.save()
    return vid.counter
コード例 #7
0
ファイル: views.py プロジェクト: nsrcelrecords/vms
    def handle_participant(self, request):

        status = tStatus.UNKNOWN_ERROR
        token = None

        if self.is_otp_valid(request):
            logger.info('Recieved valid otp session id %s utype %s ',
                        self.ss_key, self.utype)

            status, token = issue_new_itoken(self.var)
            logger.info('Calling session expired function')
            session_expired(self.ss_key, user_otp)

        else:
            logger.warning('Recieved Invalid otp session id %s utype %s ',
                           self.ss_key, self.utype)
            status = tStatus.INVALID_OTP

        if status == tStatus.SUCCESS:
            return render(
                request, 'cricket/token_assigned.html', {
                    'uid': token.userid,
                    'pwd': token.password,
                    'baseurl': settings.SITE_URL,
                    'remove_header': True,
                    'status': 'NEW'
                })

        elif status == tStatus.TOKEN_REISSUED:
            logger.debug('Rendering same token to %d', self.var)
            return render(
                request, 'cricket/token_assigned.html', {
                    'uid': token.userid,
                    'pwd': token.password,
                    'baseurl': settings.SITE_URL,
                    'remove_header': True,
                    'status': 'OLD'
                })

        elif status == tStatus.INVALID_OTP:
            return self.get(request)

        else:
            logger.error(
                'Error in Otp handler session_id %s utype %s status %s',
                self.ss_key, self.utype.name, status.name)
            return render_status(request, status)
コード例 #8
0
def get_participant_info(reg_num):

    ilist = Participant.objects.filter(registration_number=reg_num)
    if ilist and ilist[0].company.venture_state == \
        bcfg.VentureState.ACTIVE.value:

        if ilist[0].participant_state == \
            bcfg.ParticipantState.ACTIVE.value:

            if ilist[0].end_date < dt.date.today():
                ilist[0].participant_state = \
                    bcfg.ParticipantState.INACTIVE.value
                ilist[0].save()
                logger.warning('Moving Participant %s to Inactive state',
                               ilist[0])

            else:
                logger.debug('%s returned for %d', ilist[0], reg_num)
                return ilist[0]

    logger.warning('No records found for %d', reg_num)
    return None
コード例 #9
0
ファイル: views.py プロジェクト: nsrcelrecords/vms
    def is_otp_valid(self, request):

        oform = OtpForm(request.POST)
        uotp = None
        otp = None

        if oform.is_valid():
            uotp = oform.cleaned_data['otp']

        if self.utype == UserType.PARTICIPANT:
            otp_dict = user_otp

        else:
            otp_dict = visitor_otp

        otp = otp_dict[self.ss_key]['otp']
        logger.debug('session id %s utype %s provided otp %d sent otp %d',
                     self.ss_key, self.utype.name, uotp, otp)

        if uotp and otp and uotp == otp:
            return True

        else:
            return False
コード例 #10
0
 def __init__(self,userid):
     self.userid = userid
     logger.debug('Participant resource created %s userid',userid)
     super(ParticipantImportResource,self).__init__()
コード例 #11
0
 def __init__(self,userid):
   self.userid = userid
   logger.debug('Venture resource created %s userid',userid)
   super(VentureResource,self).__init__()
コード例 #12
0
ファイル: views.py プロジェクト: nsrcelrecords/vms
    def post(self, request, otp_dict, u_type):

        ss = request.session

        if ss.session_key in otp_dict.keys():
            logger.debug('Entering critical section session id %s',
                         ss.session_key)
            if bmodel.is_thread_safe_mode():
                self.lock.acquire()

            otph = OtpHandler(u_type, otp_dict[ss.session_key]['var'],
                              ss.session_key)
            response = otph.post(request)
            if bmodel.is_thread_safe_mode():
                self.lock.release()

            logger.debug('Exiting critical section session id %s',
                         ss.session_key)
            return response

        if u_type == UserType.VISITOR:
            form = visitorTokenForm(request.POST)

        else:
            form = participantTokenForm(request.POST)

        status = tStatus.UNKNOWN_ERROR
        mobile_number = 0
        reg_num = 0
        i_key = 0
        vinfo = None

        if form.is_valid():
            logger.info('valid form received from user %s session id %s',
                        u_type.name, ss.session_key)

            if u_type == UserType.VISITOR:
                vinfo = {}
                mobile_number = form.cleaned_data['mobile_number']
                i_key = mobile_number
                vinfo['name'] = form.cleaned_data['visitor_name']
                vinfo['email_address'] = form.cleaned_data['email_address']
                vinfo['mobile_number'] = form.cleaned_data['mobile_number']
                vinfo['refered_by'] = form.cleaned_data['refered_by']
                vinfo['timestamp'] = dt.datetime.now()
                logger.debug('Visitor info %s session %s', vinfo,
                             ss.session_key)
                status = tStatus.SUCCESS

            else:
                reg_num = form.cleaned_data['registration_number']
                i_key = reg_num
                participant_info = bmodel.get_participant_info(reg_num)

                if participant_info:
                    logger.debug('Participant info %s session %s',
                                 participant_info, ss.session_key)
                    status = tStatus.SUCCESS

                else:
                    logger.warning(
                        'Invalid registration number %d from session %s ',
                        reg_num, ss.session_key)
                    status = tStatus.INVALID_USER

        else:
            logger.warning('Invalid form received from user %s session id %s',
                           u_type.name, ss.session_key)
            status = tStatus.INVALID_PARAMETER

        if status == tStatus.SUCCESS:
            logger.debug('Entering critical section session id %s',
                         ss.session_key)
            if bmodel.is_thread_safe_mode():
                self.lock.acquire()

            otph = OtpHandler(u_type, i_key, ss.session_key, vinfo)
            response = otph.get(request)
            if bmodel.is_thread_safe_mode():
                self.lock.release()

            logger.debug('Exiting critical section session id %s',
                         ss.session_key)
            return response

        return render_status(request, status)
コード例 #13
0
 def __init__(self, validity):
     self.validity = validity
     logger.debug('Wifitoken resource created for validity %d', validity)
     super(WifiTokenResource, self).__init__()