コード例 #1
0
ファイル: utils.py プロジェクト: cnzhuran/mdcom
def get_pending_accoc_list(org_id, is_apply, mhluser=None, practice=None):
    providers = Provider.objects.all().values_list('user', flat=True)

    pend_assocs = Pending_Association.objects.filter(\
      practice_location__pk=org_id).order_by('-resent_time')
    if is_apply:
        pend_assocs = pend_assocs.filter(~Q(to_user__in=providers))
    else:
        pend_assocs = pend_assocs.filter(Q(to_user__in=providers))

    return_set = [{
      'flag':0,
      'pract_id':u.practice_location.id,
      'req_name': get_fullname(u.from_user) if is_apply else
       get_fullname(u.to_user),
      'pract_name':u.practice_location.practice_name,
      'assoc_id':u.pk,
      'invitation_time': str(convert_dt_to_utz(
        u.created_time, mhluser, practice)),
      'resent_time':str(convert_dt_to_utz(u.resent_time
        , mhluser, practice))
        if u.resent_time else None,
      'delta_time': get_delta_time_string(u.resent_time, mhluser,\
        practice) if u.resent_time else
        get_delta_time_string(u.created_time, mhluser, practice),
      'flag':1 if is_apply else 0,
     } for u in pend_assocs]
    return return_set
コード例 #2
0
ファイル: utils.py プロジェクト: DongHuaLu/mdcom
def get_pending_accoc_list(org_id, is_apply, mhluser=None, practice=None):
	providers = Provider.objects.all().values_list('user', flat=True)

	pend_assocs = Pending_Association.objects.filter(\
			practice_location__pk=org_id).order_by('-resent_time')
	if is_apply:
		pend_assocs = pend_assocs.filter(~Q(to_user__in=providers))
	else:
		pend_assocs = pend_assocs.filter(Q(to_user__in=providers))

	return_set = [{
			'flag':0,
			'pract_id':u.practice_location.id,
			'req_name': get_fullname(u.from_user) if is_apply else
				get_fullname(u.to_user),
			'pract_name':u.practice_location.practice_name,
			'assoc_id':u.pk,
			'invitation_time': str(convert_dt_to_utz(
					u.created_time, mhluser, practice)),
			'resent_time':str(convert_dt_to_utz(u.resent_time
					, mhluser, practice))
					if u.resent_time else None,
			'delta_time': get_delta_time_string(u.resent_time, mhluser,\
					practice) if u.resent_time else
					get_delta_time_string(u.created_time, mhluser, practice),
			'flag':1 if is_apply else 0,
		} for u in pend_assocs]
	return return_set
コード例 #3
0
ファイル: views.py プロジェクト: cnzhuran/mdcom
def dashboard(request):
    context = get_context(request)
    user = request.session['MHL_Users']['MHLUser']
    unanswered = Invitation.objects.filter(sender=request.user)
    result = []
    for un in unanswered:
        obj = {}
        obj['recipient'] = un.recipient
        obj['requestTimestamp'] = time_format(
            user,
            convert_dt_to_utz(un.requestTimestamp, user,
                              context['current_practice']))
        obj['code'] = un.code
        obj['pk'] = un.pk
        result.append(obj)

    context['unanswered_invites'] = result

    answered = InvitationLog.objects.filter(sender=request.user).filter(
        createdUser__isnull=False)
    result = []
    for an in answered:
        obj = {}
        obj['first_name'] = an.createdUser.first_name
        obj['last_name'] = an.createdUser.last_name
        obj['username'] = an.createdUser.username
        obj['email'] = an.createdUser.email
        obj['requestTimestamp'] = time_format(
            user,
            convert_dt_to_utz(an.requestTimestamp, user,
                              context['current_practice']))
        obj['responseTimestamp'] = time_format(
            user,
            convert_dt_to_utz(an.responseTimestamp, user,
                              context['current_practice']))
        result.append(obj)

    context['answered_invites'] = result

    cancelled = InvitationLog.objects.filter(sender=request.user).filter(
        createdUser__isnull=True)
    result = []
    for ca in cancelled:
        obj = {}
        obj['recipient'] = ca.recipient
        obj['requestTimestamp'] = time_format(
            user,
            convert_dt_to_utz(ca.requestTimestamp, user,
                              context['current_practice']))
        obj['responseTimestamp'] = time_format(
            user,
            convert_dt_to_utz(ca.responseTimestamp, user,
                              context['current_practice']))
        result.append(obj)
    context['cancelled_invites'] = result

    return render_to_response('dashboard.html', context)
コード例 #4
0
ファイル: views.py プロジェクト: DongHuaLu/mdcom
def dashboard(request):
	context = get_context(request)
	user = request.session['MHL_Users']['MHLUser']
	unanswered = Invitation.objects.filter(sender=request.user)
	result = []
	for un in unanswered:
		obj = {}
		obj['recipient'] = un.recipient
		obj['requestTimestamp'] = time_format(user, 
				convert_dt_to_utz(
				un.requestTimestamp, user, context['current_practice']))
		obj['code'] = un.code
		obj['pk'] = un.pk
		result.append(obj)

	context['unanswered_invites'] = result

	answered = InvitationLog.objects.filter(sender=request.user).filter(createdUser__isnull=False)
	result = []
	for an in answered:
		obj = {}
		obj['first_name'] = an.createdUser.first_name
		obj['last_name'] = an.createdUser.last_name
		obj['username'] = an.createdUser.username
		obj['email'] = an.createdUser.email
		obj['requestTimestamp'] = time_format(user, 
				convert_dt_to_utz(
				an.requestTimestamp, user, context['current_practice']))
		obj['responseTimestamp'] = time_format(user, 
				convert_dt_to_utz(
				an.responseTimestamp, user, context['current_practice']))
		result.append(obj)

	context['answered_invites'] = result

	cancelled = InvitationLog.objects.filter(sender=request.user).filter(createdUser__isnull=True)
	result = []
	for ca in cancelled:
		obj = {}
		obj['recipient'] = ca.recipient
		obj['requestTimestamp'] = time_format(user, 
				convert_dt_to_utz(
				ca.requestTimestamp, user, context['current_practice']))
		obj['responseTimestamp'] = time_format(user, 
				convert_dt_to_utz(
				ca.responseTimestamp, user, context['current_practice']))
		result.append(obj)
	context['cancelled_invites'] = result

	return render_to_response('dashboard.html', context)
コード例 #5
0
def inviteHome(request):
    context = get_context(request)
    if (request.user.is_staff):
        invites = Invitation.objects.filter(sender=request.user,
                                            userType__in=(1, 2, 10)).all()
        context['user_is_staff'] = request.user.is_staff
    else:
        #context['outstandingInvites'] = Invitation.objects.filter(sender=request.user).all()
        #context['outstandingInvites'] = list(Invitation.objects.filter(
        # sender=request.session['MHL_UserIDs']['MHLUser'], assignPractice=None))
        invites = Invitation.objects.filter(
            sender=request.session['MHL_UserIDs']['MHLUser'],
            userType__in=(1, 2, 10))
    user = request.session['MHL_Users']['MHLUser']
    practice = context['current_practice']
    result = []

    for invite in invites:
        obj = {}
        obj['recipient'] = invite.recipient
        invite_time = convert_dt_to_utz(invite.requestTimestamp, user,
                                        practice)
        obj['requestTimestamp'] = time_format(user, invite_time)
        obj['code'] = invite.code
        obj['sender'] = invite.sender
        obj['id'] = invite.id
        result.append(obj)

    context['outstandingInvites'] = result
    return render_to_response('Invites/inviteHome.html', context)
コード例 #6
0
ファイル: views_broker.py プロジェクト: cnzhuran/mdcom
def broker_page(request):
    context = get_context(request)
    now = datetime.datetime.now()
    day_latest = int(
        time.mktime((now - datetime.timedelta(days=30)).timetuple()))
    str_count_latest = 'SELECT COUNT(*) FROM Messaging_message WHERE Messaging_message.'\
     'sender_id = MHLUsers_broker.user_id and send_timestamp > %d' % day_latest
    broker_list = Broker.objects.extra(select={
         'count_all': 'SELECT COUNT(*) FROM Messaging_message WHERE '\
         'Messaging_message.sender_id = MHLUsers_broker.user_id',
         'count_latest': str_count_latest
        })

    context['broker_list'] = broker_list

    user = request.session['MHL_Users']['MHLUser']
    practice = context['current_practice']
    invites = Invitation.objects.filter(sender=request.user,
                                        userType=300).all()

    result = []
    for invite in invites:
        obj = {}
        invite_time = convert_dt_to_utz(invite.requestTimestamp, user,
                                        practice)
        obj['requestTimestamp'] = time_format(user, invite_time)
        obj['recipient'] = invite.recipient
        obj['code'] = invite.code
        obj['id'] = invite.id
        result.append(obj)

    context['invitation_list'] = result

    return render_to_response('broker_list.html', context)
コード例 #7
0
ファイル: views.py プロジェクト: DongHuaLu/mdcom
def inviteHome(request):
	context = get_context(request)
	if (request.user.is_staff):
		invites = Invitation.objects.filter(sender=request.user, userType__in=(1, 2, 10)).all()
		context['user_is_staff'] = request.user.is_staff
	else:
		#context['outstandingInvites'] = Invitation.objects.filter(sender=request.user).all()
		#context['outstandingInvites'] = list(Invitation.objects.filter(
		# sender=request.session['MHL_UserIDs']['MHLUser'], assignPractice=None))
		invites = Invitation.objects.filter(
			sender=request.session['MHL_UserIDs']['MHLUser'], userType__in=(1, 2, 10))
	user = request.session['MHL_Users']['MHLUser']
	practice = context['current_practice']
	result = []

	for invite in invites:
		obj = {}
		obj['recipient'] = invite.recipient
		invite_time = convert_dt_to_utz(invite.requestTimestamp, user, practice)
		obj['requestTimestamp'] = time_format(user, invite_time)
		obj['code'] = invite.code
		obj['sender'] = invite.sender
		obj['id'] = invite.id
		result.append(obj)

	context['outstandingInvites'] = result
	return render_to_response('Invites/inviteHome.html', context)
コード例 #8
0
ファイル: views_broker.py プロジェクト: DongHuaLu/mdcom
def broker_page(request):
	context = get_context(request)
	now = datetime.datetime.now()
	day_latest = int(time.mktime((now - datetime.timedelta(days=30)).timetuple()))
	str_count_latest = 'SELECT COUNT(*) FROM Messaging_message WHERE Messaging_message.'\
		'sender_id = MHLUsers_broker.user_id and send_timestamp > %d' % day_latest
	broker_list = Broker.objects.extra(select={
						'count_all': 'SELECT COUNT(*) FROM Messaging_message WHERE '\
						'Messaging_message.sender_id = MHLUsers_broker.user_id',
						'count_latest': str_count_latest
					})

	context['broker_list'] = broker_list

	user = request.session['MHL_Users']['MHLUser']
	practice = context['current_practice']
	invites = Invitation.objects.filter(sender=request.user, userType=300).all()

	result = []
	for invite in invites:
		obj = {}
		invite_time = convert_dt_to_utz(invite.requestTimestamp, user, practice)
		obj['requestTimestamp'] = time_format(user, invite_time)
		obj['recipient'] = invite.recipient
		obj['code'] = invite.code
		obj['id'] = invite.id
		result.append(obj)

	context['invitation_list'] = result

	return render_to_response('broker_list.html', context)
コード例 #9
0
ファイル: views.py プロジェクト: cnzhuran/mdcom
def get_followups(user, index=0, itemsPerPage=10, mhluser=None, practice=None):
    followups = FollowUps.objects.filter(user=user).exclude(
        deleted=True)[itemsPerPage * index:itemsPerPage * (index + 1)]
    followup_count = len(FollowUps.objects.filter(user=user))
    for f in followups:
        f.due_date = convert_dt_to_utz(f.due_date, mhluser, practice)
    return (followups, followup_count)
コード例 #10
0
ファイル: test_timeFormat.py プロジェクト: cnzhuran/mdcom
 def test_convert_dt_to_utz(self):
     local_tz = 'America/New_York'
     practice = PracticeLocation()
     practice.time_zone = local_tz
     dt = datetime(2013, 01, 29)
     local_tz = timezone(local_tz)
     local_dt = timezone(settings.TIME_ZONE).localize(dt, is_dst=None)
     cmp_dt = local_dt.astimezone(local_tz).replace(tzinfo=None)
     self.assertEqual(cmp_dt, convert_dt_to_utz(dt, self.mhluser, practice))
コード例 #11
0
ファイル: test_timeFormat.py プロジェクト: DongHuaLu/mdcom
	def test_convert_dt_to_utz(self):
		local_tz = 'America/New_York'
		practice = PracticeLocation()
		practice.time_zone = local_tz
		dt = datetime(2013, 01, 29)
		local_tz = timezone(local_tz)
		local_dt = timezone(settings.TIME_ZONE).localize(dt, is_dst=None)
		cmp_dt = local_dt.astimezone(local_tz).replace(tzinfo=None)
		self.assertEqual(cmp_dt, convert_dt_to_utz(dt, self.mhluser, practice))
コード例 #12
0
ファイル: views.py プロジェクト: cnzhuran/mdcom
def editFollowUp(request, followupID):
    followup = get_object_or_404(FollowUps, id=followupID)
    if (followup.user != request.user):
        return err403(request,
                      err_msg=_("You don't seem to own this follow-up item."))
    if (followup.deleted):
        raise Http404

    # Get the context *after* the ownership check. After all, why do all that
    # work if we're just going to return HTTP403?
    context = get_context(request)
    user = request.session['MHL_Users']['MHLUser']
    practice = context['current_practice']

    if followup:
        followup.due_date = convert_dt_to_utz(followup.due_date, user,
                                              practice)

    if (request.method == "POST"):
        editfollowup_form = FollowUpForm(request.POST, instance=followup)

        if (editfollowup_form.is_valid()):
            followup_obj = editfollowup_form.save(commit=False)
            if (followup_obj.done and not followup_obj.completion_date):
                followup_obj.completion_date = datetime.datetime.today()
            elif (not followup_obj.done):
                followup_obj.completion_date = None
            followup_obj.due_date = convert_dt_to_stz(followup_obj.due_date,
                                                      user, practice)
            followup_obj.save()
            return HttpResponseRedirect(
                reverse('MHLogin.MHLogin_Main.views.main'))

        else:  # if not (editfollowup_form.is_valid()):
            context['form_id'] = followupID
            context['editfollowup_form'] = editfollowup_form

    else:  # if (request.method != "POST"):
        context['form_id'] = followupID
        context['editfollowup_form'] = FollowUpForm(instance=followup)
    return render_to_response('FollowUp/editfollowup.html', context)
コード例 #13
0
ファイル: views.py プロジェクト: DongHuaLu/mdcom
def inviteHome(request):
	context = get_context(request)
	invites = Invitation.objects.filter(sender=request.user)
	user = request.session['MHL_Users']['MHLUser']
	practice = context['current_practice']

	result = []
	for invite in invites:
		obj = {}
		obj['recipient'] = invite.recipient
		invite_time = convert_dt_to_utz(invite.requestTimestamp, user, practice)
		obj['requestTimestamp'] = time_format(user, invite_time)
		obj['get_userType_display'] = invite.get_userType_display
		obj['typeVerified'] = invite.typeVerified
		obj['first_name'] = invite.sender.first_name
		obj['last_name'] = invite.sender.last_name
		obj['code'] = invite.code
		obj['testFlag'] = invite.testFlag
		obj['id'] = invite.id
		result.append(obj)
	context['outstandingInvites'] = result
	return render_to_response('inviteHome.html', context)
コード例 #14
0
ファイル: utils.py プロジェクト: DongHuaLu/mdcom
def get_delta_time_string(dt, mhluser, practice):
	if not isinstance(dt, datetime.datetime):
		return ''

	ts = convert_dt_to_utz(dt, mhluser, practice)

	delta_milseconds = time.time()-time.mktime(ts.timetuple())
	if delta_milseconds < 0:
		return ''

	delta_val = delta_milseconds/(60*60*24*30*12)

	if int(delta_val) > 1:
		return _("several years ago")

	if int(delta_val) == 1:
		return _("1 year ago")
	
	delta_val = delta_val*12*30/7
	if int(delta_val) > 0:
		return '%d week(s) ago' % int(delta_val)

	delta_val = delta_val*7
	if int(delta_val) > 0:
		return '%d day(s) ago' % int(delta_val)

	delta_val = delta_val*24
	if int(delta_val) > 0:
		return '%d hour(s) ago' % int(delta_val)

	delta_val = delta_val*60
	if int(delta_val) > 0:
		return '%d minute(s) ago' % int(delta_val)

	delta_val = delta_val*60
	if int(delta_val) > 0:
		return '%d second(s) ago' % int(delta_val)

	return _("1 second ago")
コード例 #15
0
ファイル: utils.py プロジェクト: cnzhuran/mdcom
def get_delta_time_string(dt, mhluser, practice):
    if not isinstance(dt, datetime.datetime):
        return ''

    ts = convert_dt_to_utz(dt, mhluser, practice)

    delta_milseconds = time.time() - time.mktime(ts.timetuple())
    if delta_milseconds < 0:
        return ''

    delta_val = delta_milseconds / (60 * 60 * 24 * 30 * 12)

    if int(delta_val) > 1:
        return _("several years ago")

    if int(delta_val) == 1:
        return _("1 year ago")

    delta_val = delta_val * 12 * 30 / 7
    if int(delta_val) > 0:
        return '%d week(s) ago' % int(delta_val)

    delta_val = delta_val * 7
    if int(delta_val) > 0:
        return '%d day(s) ago' % int(delta_val)

    delta_val = delta_val * 24
    if int(delta_val) > 0:
        return '%d hour(s) ago' % int(delta_val)

    delta_val = delta_val * 60
    if int(delta_val) > 0:
        return '%d minute(s) ago' % int(delta_val)

    delta_val = delta_val * 60
    if int(delta_val) > 0:
        return '%d second(s) ago' % int(delta_val)

    return _("1 second ago")
コード例 #16
0
ファイル: views.py プロジェクト: cnzhuran/mdcom
def inviteHome(request):
    context = get_context(request)
    invites = Invitation.objects.filter(sender=request.user)
    user = request.session['MHL_Users']['MHLUser']
    practice = context['current_practice']

    result = []
    for invite in invites:
        obj = {}
        obj['recipient'] = invite.recipient
        invite_time = convert_dt_to_utz(invite.requestTimestamp, user,
                                        practice)
        obj['requestTimestamp'] = time_format(user, invite_time)
        obj['get_userType_display'] = invite.get_userType_display
        obj['typeVerified'] = invite.typeVerified
        obj['first_name'] = invite.sender.first_name
        obj['last_name'] = invite.sender.last_name
        obj['code'] = invite.code
        obj['testFlag'] = invite.testFlag
        obj['id'] = invite.id
        result.append(obj)
    context['outstandingInvites'] = result
    return render_to_response('inviteHome.html', context)
コード例 #17
0
ファイル: views.py プロジェクト: DongHuaLu/mdcom
def editFollowUp(request, followupID):
	followup = get_object_or_404(FollowUps, id=followupID)
	if (followup.user != request.user):
		return err403(request, err_msg=_("You don't seem to own this follow-up item."))
	if (followup.deleted):
		raise Http404

	# Get the context *after* the ownership check. After all, why do all that
	# work if we're just going to return HTTP403?
	context = get_context(request)
	user = request.session['MHL_Users']['MHLUser']
	practice = context['current_practice']

	if followup:
		followup.due_date = convert_dt_to_utz(followup.due_date, user, practice)

	if (request.method == "POST"):
		editfollowup_form = FollowUpForm(request.POST, instance=followup)

		if (editfollowup_form.is_valid()):
			followup_obj = editfollowup_form.save(commit=False)
			if (followup_obj.done and not followup_obj.completion_date):
				followup_obj.completion_date = datetime.datetime.today()
			elif (not followup_obj.done):
				followup_obj.completion_date = None
			followup_obj.due_date =convert_dt_to_stz(followup_obj.due_date, user, practice)
			followup_obj.save()
			return HttpResponseRedirect(reverse('MHLogin.MHLogin_Main.views.main'))

		else: # if not (editfollowup_form.is_valid()):
			context['form_id'] = followupID
			context['editfollowup_form'] = editfollowup_form

	else: # if (request.method != "POST"):
		context['form_id'] = followupID
		context['editfollowup_form'] = FollowUpForm(instance=followup)
	return render_to_response('FollowUp/editfollowup.html', context)
コード例 #18
0
ファイル: views.py プロジェクト: DongHuaLu/mdcom
def get_followups(user, index=0, itemsPerPage=10, mhluser=None, practice=None):
	followups = FollowUps.objects.filter(user=user).exclude(deleted=True)[itemsPerPage * index:itemsPerPage * (index + 1)]
	followup_count = len(FollowUps.objects.filter(user=user))
	for f in followups:
		f.due_date = convert_dt_to_utz(f.due_date, mhluser, practice)
	return (followups, followup_count)