Ejemplo n.º 1
0
	def test_bad_create_logger(self):
		# Setting up logging
		class DevNull():
			def write(self, s):
				pass

		temp = sys.stderr
		sys.stderr = DevNull()  # keep logger quiet
		logger = get_standard_logger('/path_to/bad_path/test.log',
							'bad_path.test', settings.LOGGING_LEVEL)
		sys.stderr = temp		# set back to original stderr
		self.assertTrue(len(logger.handlers) == 1, len(logger.handlers))
		# this check could be better but we know under error StreamHandler is created 
		self.assertTrue(isinstance(logger.handlers[0], StreamHandler), 
								logger.handlers[0].__class__.__name__)
Ejemplo n.º 2
0
	get_community_providers_by_coords, \
	set_providers_result, set_practice_members_result, get_all_site_staff,\
	set_site_staff_result
from MHLogin.KMS.utils import store_user_key, recrypt_keys
from MHLogin.KMS.models import UserPrivateKey, CRED_WEBAPP
from MHLogin.utils.templates import get_context, phone_formater
from MHLogin.utils.mh_logging import get_standard_logger 
from MHLogin.utils.constants import STATE_CHOICES

from MHLogin.MHLPractices.utils import get_practices_by_position, set_practices_result
from MHLogin.MHLOrganization.utils import get_org_type_name
from MHLogin.MHLOrganization.utils_org_tab import getOrganizationsOfUser, renderOrganizationForDashbord
from MHLogin.MHLFavorite.utils import get_my_favorite

# Setting up logging
logger = get_standard_logger('%s/DoctorCom/IVR/views_generic.log' % 
	(settings.LOGGING_ROOT), 'DCom.IVR.views_gen', settings.LOGGING_LEVEL)


def fp_test(request):
	return render_to_response('fp_test.html')


def main(request):
	if request.user.is_authenticated():
		if ('Physician' in request.session['MHL_Users']):
			return main_physician(request, request.session['MHL_Users']['Physician'])
			#return HttpResponseRedirect('/')
		if ('NP_PA' in request.session['MHL_Users']):
			return main_np_pa(request, request.session['MHL_Users']['NP_PA'])
		if ('Nurse' in request.session['MHL_Users']):
			#return main_nurse(request, request.session['MHL_Users']['Nurse'])
Ejemplo n.º 3
0
from django import forms
from django.conf import settings
from django.forms.util import ErrorList
from django.forms import ModelForm

from MHLogin.DoctorCom.models import MessageTemp
from MHLogin.MHLUsers.models import Provider
from MHLogin.utils.mh_logging import get_standard_logger

from django.utils.translation import ugettext as _

# Setting up logging
logger = get_standard_logger(
    '%s/DoctorCom/forms.log' % (settings.LOGGING_ROOT), 'DCom.forms',
    settings.LOGGING_LEVEL)


class MessageForm(ModelForm):
    #body = forms.CharField(max_length=140)
    #recipients = forms.ModelMultipleChoiceField(MHLUser)
    #recipient_type = forms.ChoiceField(widget=
    #forms.RadioSelect(),choices=RECIPIENT_TYPE_CHOICES,initial='AC')
    #user_recipients = forms.ModelMultipleChoiceField(queryset=
    #Provider.objects.exclude(mobile_phone='').order_by('last_name'))
    user_recipients = forms.MultipleChoiceField(choices=())
    action = forms.CharField(widget=forms.HiddenInput, initial="send")
    body = forms.CharField(widget=forms.Textarea)

    def __init__(self, site, *args, **kwargs):
        session_key = None
        if (not 'session_key' in kwargs):
Ejemplo n.º 4
0
from django.conf import settings
from MHLogin.utils.mh_logging import get_standard_logger

# logger for tech_admin package
logger = get_standard_logger(
    '%s/Administration/tech_admin.log' % (settings.LOGGING_ROOT), 'tech_admin',
    settings.LOGGING_LEVEL)
Ejemplo n.º 5
0
from models import callLog, callEvent
from views_generic_v2 import authenticateSessionNew, _getCallLogOrParent, _copyStateVariables
from views_generic_v2 import _setup_Main_callers, _getOrCreateCallLog, _getMHLUser, _maskProviderCaller
from views_generic_v2 import changePinNew, changeNameNew, changeGreetingNew
from views_generic_v2 import playMessagesNew, getQuickRecordingNew, getRecordingNew

from MHLogin.MHLUsers.models import Provider, OfficeStaff
from MHLogin.utils.decorators import TwilioAuthentication
from MHLogin.utils.mh_logging import get_standard_logger

from MHLogin.DoctorCom.Messaging.models import MessageBodyUserStatus
from MHLogin.DoctorCom.IVR.utils import save_message, _checkCallbackDuration, _makeUSNumber
from MHLogin.DoctorCom.speech.utils import tts

# Setting up logging
logger = get_standard_logger('%s/DoctorCom/IVR/views_provider_v2.log' % (settings.LOGGING_ROOT),
	'DCom.IVR.views_prov', settings.LOGGING_LEVEL)

# new refactored calls to cater for Twilio API 2010-04-01 version
# revised from views_provider.py
#
# The request.session dictionary is heavily used through this codebase. Since
# this is a pretty opaque data structure, we should maintain a list of keys
# here. If you add keys to the dictionary, make sure to note it here.
#
# General Variables
# --------------------------------------------
# authenticated - Whether or not the user is authenticated. If the key exists,
#	   then assume the user is authenticated, regardless of its value. unchanged from prior version
# Called - The phone number the caller is trying to reach. (aka To)
# Caller - The callerID of the person who is calling in. (aka From)
# ivr2_state - The state of call processing tree. IT IS NOT A STACK
Ejemplo n.º 6
0
from MHLogin.Administration.forms_qa import GenerateUsersForm, ReGenerateKeyForm
from MHLogin.DoctorCom.IVR.models import VMBox_Config
from MHLogin.KMS.utils import create_default_keys, generate_keys_for_users
from MHLogin.KMS.models import OwnerPublicKey, UserPrivateKey
from MHLogin.MHLUsers.decorators import RequireAdministrator
from MHLogin.MHLUsers.models import MHLUser, Provider, Physician, NP_PA, \
	OfficeStaff, Office_Manager, Nurse, Dietician
from MHLogin.utils.constants import USER_TYPE_DOCTOR, USER_TYPE_NPPA, \
	USER_TYPE_MEDICAL_STUDENT, USER_TYPE_OFFICE_MANAGER, USER_TYPE_NURSE, \
	USER_TYPE_DIETICIAN
from MHLogin.utils.mh_logging import get_standard_logger
from MHLogin.utils.templates import get_context
from MHLogin.utils.FileHelper import get_absolute_path, getTempFilePath
from MHLogin.MHLPractices.models import PracticeLocation

logger = get_standard_logger('%s/Administration/views_qa.log' % 
	(settings.LOGGING_ROOT), 'Administration.views_qa', settings.LOGGING_LEVEL)


@RequireAdministrator
def qa_tools(request):
	context = get_context(request)
	if (settings.DEBUG):
		start = 0

		mobile_perm = Permission.objects.get_or_create(\
				codename='access_smartphone',
				name='Can use smartphone app', 
				content_type=ContentType.objects.get_for_model(MHLUser))

		MHLUser.objects.update(mobile_phone='')
		MHLUser.objects.update(phone='')
Ejemplo n.º 7
0
from django.core.management.base import BaseCommand
from django.utils.translation import ugettext
from MHLogin.DoctorCom.Messaging.models import Message
from MHLogin.DoctorCom.Messaging.utils import MSG_SUBJECT_PREFIXS,\
 clean_subject_prefix, MSG_SUBJECT_PREFIX_RE, MSG_SUBJECT_PREFIX_FW
from optparse import make_option
from MHLogin.utils.mh_logging import get_standard_logger
from django.conf import settings

# Setting up logging
logger = get_standard_logger(
    '%s/utils/management/commands/clean_message_prefix.log' %
    (settings.LOGGING_ROOT), 'utils.management.commands.clean_message_prefix',
    "INFO")


class Command(BaseCommand):
    """
	Clean message subject prefix.
	"""
    option_list = BaseCommand.option_list + (make_option(
        '--persistence',
        action='store_true',
        dest='persistence',
        default=False,
        help='Tells Django to apply these change to the database.'), )

    def __init__(self):
        super(Command, self).__init__()
        self.help = ugettext('Help: Clean message subject prefix.\n')
Ejemplo n.º 8
0
from django import forms
from django.conf import settings
from django.forms.util import ErrorList
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext as _

from MHLogin.DoctorCom.Messaging.models import REFER_STATUS, MessageRefer
from MHLogin.DoctorCom.models import MessageTemp
from MHLogin.MHLPractices.models import PracticeLocation
from MHLogin.MHLUsers.models import MHLUser, Office_Manager
from MHLogin.utils.constants import GENDER_CHOICES,DATE_FORMAT
from MHLogin.utils.mh_logging import get_standard_logger

# Setting up logging
logger = get_standard_logger('%s/DoctorCom/Messaging/forms.log' % (settings.LOGGING_ROOT),
							'DCom.Msgng.forms', settings.LOGGING_LEVEL)

msg_id_re = re.compile('[0-9a-f]{32}$')
user_id_re = re.compile('\d+$')

PHONE_NUMBER_HELP_TEXT = _("Please enter only digits. (e.g., 8005555555)")

class MessageEditCheckForm(forms.Form):
	recipients = forms.CharField(required=False) 
	ccs = forms.CharField(required=False) 
	len_attachments = forms.CharField(required=False)
	practice = forms.CharField(required=False)

class MessageOptionsForm(forms.Form):
	user_recipients = forms.CharField(required=False, widget=forms.HiddenInput) 
	thread_uuid = forms.CharField(required=False, widget=forms.HiddenInput) 
Ejemplo n.º 9
0
from MHLogin.MHLPractices.models import PracticeLocation
from MHLogin.MHLUsers.models import MHLUser, OfficeStaff, Provider

from MHLogin.MHLUsers.Sales.models import Products

from MHLogin.genbilling.signals import credit_card_error, invoice_sent
from MHLogin.genbilling.utils import get_next_billing_period_for_date, \
 get_current_billing_period, get_next_billing_period

import logging
from django.conf import settings
from MHLogin.utils.mh_logging import get_standard_logger
from django.core.exceptions import ObjectDoesNotExist

# Setting up logging
logger = get_standard_logger('%s/genbilling/models.log' % \
 (settings.LOGGING_ROOT), 'genbilling.models', logging.WARN)


class _FauxRequestSession(object):
    session_key = ' '


class _FauxRequest(object):
    session = _FauxRequestSession


class AccountTransactionManager(models.Manager):
    def create_manual_debit(self, account, amount, memo):
        """
		Posts Manual debit to account
		"""
Ejemplo n.º 10
0
import traceback  # DEBUG

from django.db import models
from django.conf import settings
from django.contrib.auth.models import User
from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _

from MHLogin.MHLCallGroups.models import CallGroup
from MHLogin.utils.mh_logging import get_standard_logger 
from MHLogin.utils.admin_utils import mail_admins


# Setting up logging
logger = get_standard_logger('%s/MHLCallGroups/Scheduler/models.log' % 
	(settings.LOGGING_ROOT), 'MHLCallGroups.Scheduler.models', settings.LOGGING_LEVEL)


EVENT_TYPE_CHOICES = (
	('0', _('Medical on-call')),
	('1', _('Administrative on-call')),
)

ONCALL_LEVEL_CHOICES = (
	('0', _('Primary')),
	('1', _('Secondary')),
)

ONCALL_STATUS_CHOICES = (
	('0', _('unconfirmed')),
	('1', _('tentative')),
Ejemplo n.º 11
0
from django.utils import unittest
from django.test.client import Client
from django.conf import settings
from django.core.urlresolvers import reverse

from MHLogin.utils.mh_logging import get_standard_logger
from MHLogin.MHLUsers.models import MHLUser, Salesperson, Administrator, Provider, Physician
from MHLogin.MHLPractices.models import PracticeLocation
from MHLogin.MHLSites.models import Site
from MHLogin.utils.tests import create_user
from MHLogin.utils.decorators import skipIfUrlFails

# Setting up logging
logger = get_standard_logger(
    '%s/analytics/tests.log' % (settings.LOGGING_ROOT), 'analytics.tests',
    settings.LOGGING_LEVEL)


class AnalyticsUnitTest(unittest.TestCase):
    """ Sales unittester for creating Salesperson, Salse Products, Sales Leads
		and verifying everything stays in sync with no errors or failures
	"""
    @classmethod
    def setUpClass(cls):  # done once for all AnalyticsUnitTest
        # needed at login
        # create admin and test user
        cls.admin = create_user("sduper",
                                "super",
                                "duper",
                                "demo",
Ejemplo n.º 12
0
from MHLogin.MHLUsers.forms import ProviderForm, UserForm, OfficeStaffForm, \
 PhysicianForm, BrokerForm, ChangePasswordForm, SecurityQuestionsForm, \
 CallForwardForm, UpdateSecurityForm, BrokerUserForm
from MHLogin.MHLUsers.models import SecurityQuestions, Broker, Provider, NP_PA, \
 Nurse, OfficeStaff, MHLUser
from MHLogin.MHLUsers.utils import change_pass, answerToHash, \
 has_mhluser_with_email, has_mhluser_with_mobile_phone,get_fullname
from MHLogin.utils import ImageHelper
from MHLogin.utils.constants import LANGUAGE, RESERVED_ORGANIZATION_TYPE_ID_PRACTICE
from MHLogin.utils.mh_logging import get_standard_logger
from MHLogin.utils.templates import get_context
from MHLogin.utils.timeFormat import OLD_TIME_ZONES_MIGRATION
from MHLogin.MHLOrganization.utils import get_other_organizations

# Setting up logging
logger = get_standard_logger('%s/MHLUsers/views.log' % (settings.LOGGING_ROOT),
                             'MHLUsers.views', settings.LOGGING_LEVEL)


def changepin(request):
    context = get_context(request)
    if (request.method == 'POST'):
        form = PinChangeForm(request.POST)
        form.user = request.user
        if (form.is_valid()):
            if 'Provider' in request.session['MHL_Users']:
                provider = Provider.objects.get(user__id=request.user.id)
                config = provider.vm_config.get()
                config.change_pin(request, new_pin=form.cleaned_data['pin1'])
                return render_to_response('Profile/changepinconfirmed.html',
                                          context)
            elif 'Broker' in request.session['MHL_Users']:
Ejemplo n.º 13
0
from MHLogin.utils.errlib import err404
from MHLogin.MHLUsers.models import Provider
from MHLogin.utils.decorators import TwilioAuthentication
from MHLogin.utils.mh_logging import get_standard_logger
from MHLogin.MHLPractices.models import PracticeLocation
from MHLogin.DoctorCom.Messaging.models import MessageAttachment, CallbackLog
from MHLogin.DoctorCom.speech.utils import tts
from MHLogin.KMS.utils import store_user_key, get_user_key
from MHLogin.KMS.models import UserPrivateKey, CRED_IVRPIN
from MHLogin.utils.admin_utils import mail_admins

from django.utils.translation import ugettext as _

# Setting up logging
logger = get_standard_logger('%s/DoctorCom/IVR/views_generic.log' % (settings.LOGGING_ROOT),
							'DCom.IVR.views_generic', settings.LOGGING_LEVEL)

# NOTE
# DEPRECATED - most of the calls here are being deprecated (except for getRecording).
# any changes should be replicated to views_generic_v2.py version
# NOTE


@TwilioAuthentication()
def UnaffiliatedNumber(request):
	r = twilio.Response()
	r.append(twilio.Pause())  # one second pause keeps the first words from getting cut off.
	r.append(tts(_("You have called an inactive phone number affiliated with "
				"doctorcom. Please visit us online at w w w dot m d com dot com. Good bye.")))
	r.append(twilio.Hangup())
	return HttpResponse(str(r), mimetype=settings.TWILIO_RESPONSE_MIMETYPE)
Ejemplo n.º 14
0
from MHLogin.MHLUsers.models import Physician, MHLUser, Provider, Office_Manager
from MHLogin.MHLUsers.utils import all_staff_members, set_practice_members_result,get_fullname
from MHLogin.MHLOrganization.utils import get_common_org_ids, get_more_providers
from MHLogin.MHLPractices.models import PracticeLocation
from MHLogin.utils import FileHelper, ImageHelper
from MHLogin.utils.mh_logging import get_standard_logger 
from MHLogin.utils.errlib import err500, err403
from MHLogin.utils.admin_utils import mail_admins
from MHLogin.utils.DicomHelper import sendToDicomServer
from MHLogin.utils.templates import get_context, get_prefer_logo
from MHLogin.utils.constants import RESERVED_ORGANIZATION_TYPE_ID_PRACTICE, \
	REFER_FORWARD_CHOICES_ONLY_MANAGER


# Setting up logging
logger = get_standard_logger('%s/DoctorCom/Messaging/views_refer.log' % 
	(settings.LOGGING_ROOT), 'DoctorCom.Messaging.views_refer', settings.LOGGING_LEVEL)


REFER_CACHE_SESSION_KEY = "ReferData"
PREVENT_REPEAT_COMMIT_TOKEN = "PREVENT_REPEAT_COMMIT_TOKEN"
suffix_re = re.compile('\.([^.]+)$')
MESSAGE_REPEAT_COMMIT = _("Sorry, your refer was sent failed because of duplicate sending.")


def refer_home(request):
	context = get_context(request)

	sender = None
	if ('Provider' in request.session['MHL_Users']):
		sender = request.session['MHL_Users']['Provider']
	elif ('OfficeStaff' in request.session['MHL_Users']):
Ejemplo n.º 15
0
from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from django.utils.translation import ugettext_lazy as _

from MHLogin.MHLUsers.models import Administrator, Dietician, MHLUser, Provider, Salesperson, \
	Physician, NP_PA, OfficeStaff, Nurse, Office_Manager, Broker, Regional_Manager
from MHLogin.MHLUsers.utils import getCurrentUserInfo
from MHLogin.utils.templates import get_context
from MHLogin.utils.mh_logging import get_standard_logger 
from MHLogin.utils.admin_utils import mail_admins

# Set up a specific logger with our desired output level
if (not 'logger' in locals()):
	logger = get_standard_logger('%s/utils/Middlewares.log' % (settings.LOGGING_ROOT),
								'utils.Middlewares', settings.LOGGING_LEVEL)


class ExceptionDumpMiddleware(object):
	"""
	Middleware to dump exceptions. Loosely based on:
	http://djangosnippets.org/snippets/638/
	"""

	def process_exception(self, request, exception):
		# Get the exception info now, in case another exception is thrown later.
		#if isinstance(exception, Http500):
		return self.handle_500(request, exception)

	def handle_500(self, request, exception):
		exc_info = sys.exc_info()
Ejemplo n.º 16
0
from urlparse import urljoin

from django.conf import settings
from django.core.urlresolvers import reverse

from twilio import TwilioRestException
from twilio.rest.resources import make_twilio_request
from MHLogin.DoctorCom.IVR.utils import _getUSNumber, _makeUSNumber
from MHLogin.utils.mh_logging import get_standard_logger

from MHLogin.utils.twilio_utils import client, client2008, TWILIO_AREACODE_PARAMETER_NOT_SUPPORTED, \
	TWILIO_INVALID_AREA_CODE, TWILIO_NO_PHONE_NUMBERS_IN_AREA_CODE

from django.utils.translation import ugettext_lazy as _

logger = get_standard_logger('%s/DoctorCom/NumProvUtil.log' % (settings.LOGGING_ROOT),
							'DoctorCom.NumProvUtil', settings.LOGGING_LEVEL)


def twilio_account_active():
	try:
		account = client.accounts.get(settings.TWILIO_ACCOUNT_SID)
		if account:
			return True
		else:
			return False
	except TwilioRestException:
		# if account is not active, suspended, etc
		return False


def twilio_get_available_number(area_code, incountry="US", intype="local"):
Ejemplo n.º 17
0
import re

from django import forms
from django.conf import settings
from django.contrib.auth.models import User
from django.forms.util import ErrorList
from django.utils.translation import ugettext_lazy as _

from MHLogin.utils.mh_logging import get_standard_logger 

from MHLogin.Invites.models import Invitation
from MHLogin.utils.constants import PROVIDER_INVITE_CHOICES, SALES_INVITE_CHOICES, OFFICE_STAFF_INVITE_CHOICES

# Setting up logging
logger = get_standard_logger('%s/Invites/forms.log' % (settings.LOGGING_ROOT),
							'Invites.forms', settings.LOGGING_LEVEL)


class ManagerInviteForm(forms.ModelForm):
	userType = forms.ChoiceField(label=_('User Type'), choices=PROVIDER_INVITE_CHOICES)
	msg = forms.CharField(required=False, label=_('Note to your Colleague'), widget=forms.Textarea(attrs={'rows':4, 'cols':40}))
	sender = forms.HiddenInput()
	
	class Meta:
		model = Invitation
		fields = ['recipient']
	
#	def clean(self):
#		address = self.cleaned_data['recipient']
#		type = self.cleaned_data['userType']
#		if (Invitation.objects.filter(recipient=address, userType=type).count()):
Ejemplo n.º 18
0
'''
import time
import thread

from django.conf import settings
from django.core.mail import send_mail
from django.template.loader import render_to_string
from django.utils.translation import ugettext as _

from MHLogin.MHLPractices.models import Pending_Org_Association, \
	Log_Org_Association
from MHLogin.MHLUsers.utils import get_all_practice_managers,get_fullname
from MHLogin.MHLOrganization.utils import notify_org_users_tab_chanaged
from MHLogin.utils.mh_logging import get_standard_logger

logger = get_standard_logger('%s/MHLOrganization/utils_org_member.log' % (settings.LOGGING_ROOT),
							'MHLOrganization.utils_org_member', settings.LOGGING_LEVEL)

def send_mail_to_org_manager(org, subject, body_template_file, body_context):
	mgrs = get_all_practice_managers(org)
	for mgr in mgrs:
		body_context.update({
				'manager_fullname': get_fullname(mgr.user)
			})
		body = render_to_string(body_template_file, body_context)
		send_mail(
				subject,
				body,
				settings.SERVER_EMAIL,
				[mgr.user.email],
				fail_silently=False
			)
Ejemplo n.º 19
0
	USER_TYPE_OFFICE_MANAGER, USER_TYPE_NURSE, USER_TYPE_DIETICIAN, \
	USER_TYPE_OFFICE_STAFF
from MHLogin.utils.errlib import err403, err404
from MHLogin.utils.templates import get_context_for_organization, phone_formater, \
	get_context
from MHLogin.utils.timeFormat import getDisplayedTimeZone, hour_format, \
	minute_format, OLD_TIME_ZONES_MIGRATION, getCurrentTimeZoneForUser, \
	formatTimeSetting
from MHLogin.MHLPractices.forms_staffsearch import ProviderByMailForm
from MHLogin.MHLOrganization.views_member import _get_specialty, addAssociation
from MHLogin.Invites.models import Invitation
from MHLogin.MHLPractices.utils_pendding import user_is_pendding_in_org
from MHLogin.KMS.utils import create_default_keys
from MHLogin.utils.mh_logging import get_standard_logger

logger = get_standard_logger('%s/MHLOrganization/views.log' % (settings.LOGGING_ROOT),
							'MHLOrganization.views', settings.LOGGING_LEVEL)


def org_list(request):
	context = get_context(request)
	return render_to_response(
		'MHLOrganization/includes/organization_template.html', context)


def org_tree(request):
	root_node = request.POST.get('root_node', None)
	show_parent = request.POST.get('show_parent', None)
	if show_parent and root_node:
		try:
			root_node = OrganizationRelationship.objects\
					.get(organization=root_node).parent.id
Ejemplo n.º 20
0
from MHLogin.utils.templates import get_context

from MHLogin.Invites.models import Invitation, InvitationLog
from MHLogin.DoctorCom.models import Click2Call_Log, PagerLog
from MHLogin.DoctorCom.IVR.models import callLog

from MHLogin.analytics.forms import MonthForm
from MHLogin.analytics.models import PagerDailySummary, Click2CallDailySummary,\
	MessageDailySummary, InviteDailySummary
from MHLogin.analytics.utils import populatePagerSummary, populateMessageSummary,\
	populateClick2CallSummary, populateInviteSummary, extract_start_end_dates, \
	getSiteAnalyticsTopThree


# Setting up logging
logger = get_standard_logger('%s/analytics/views.log' % (settings.LOGGING_ROOT),
							'analytics.views', logging.INFO)

PERIOD_STRFORMAT = _('Week of %B %d, %Y')
SPECIALTIES = dict(SPECIALTY_CHOICES)


@RequireAdministrator
def home(request):
	"""The main  analytics page with links to specific analytic topics

	:param request: The HTTP request
	:type request: django.core.handlers.wsgi.WSGIRequest
	:returns: django.http.HttpResponse -- the result in an HttpResonse object
	:raises: None
	"""
	return render_to_response("analytics/home.html", get_context(request))
Ejemplo n.º 21
0
from MHLogin.utils.templates import get_context
from MHLogin.utils.mh_logging import get_standard_logger
from MHLogin.Invites.forms import multiUserSendForm
from MHLogin.Invites.models import Invitation, InvitationLog

from MHLogin.MHLUsers.models import MHLUser, Salesperson, Administrator
from MHLogin.MHLUsers.Sales.models import SalesLeads, SalesProduct, SALES_STAGES, SALES_SOURCE
from MHLogin.MHLUsers.Sales.forms import SalesPersonForm

from MHLogin.utils import ImageHelper
from MHLogin.utils.timeFormat import time_format, convert_dt_to_utz
from MHLogin.utils.errlib import err5xx

# Setting up logging
logger = get_standard_logger('%s/MHLUsers/Sales/views.log' % (settings.LOGGING_ROOT),
							'MHLUser.Sales.views', settings.LOGGING_LEVEL)
fullLeadAccess = lambda request: ('Administrator' in request.session['MHL_Users'] or \
			request.user.has_perm('MHLUsers.sales_executive'))


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']))
Ejemplo n.º 22
0
import logging 

from django.conf import settings
from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _

from MHLogin.utils.templates import get_context

from MHLogin.KMS.exceptions import KMSException
from MHLogin.KMS.shortcuts import decrypt_object
from MHLogin.utils.mh_logging import get_standard_logger 


# Setting up logging
if (not 'logger' in locals()):
	logger = get_standard_logger('%s/DoctorCom/views_boxes.log' % (settings.LOGGING_ROOT), 
								'DCom.views_boxes', logging.DEBUG)


def box_recent_received(request):
	"""
	Process box_recent_received view request

	:param request: The HTTP GET request
	:type request: django.core.handlers.wsgi.WSGIRequest  
	:returns: django.http.HttpResponse -- the result in an HttpResonse object 
	:raises: None 
	"""
	context = get_context(request)

	return render_to_string("Messaging/box_recent_received-RD.html", context)
Ejemplo n.º 23
0
import collections
import logging

from datetime import datetime
from django.core.exceptions import ObjectDoesNotExist
from django.conf import settings
from django.db import models
from django.db.models.signals import post_save, pre_delete, pre_save
from django.dispatch import receiver

from MHLogin.utils.mh_logging import get_standard_logger
from MHLogin.MHLUsers.models import MHLUser

# Setting up logging
logger = get_standard_logger('%s/MHLUsers/Sales/models.log' % (settings.LOGGING_ROOT),
							'MHLUser.Sales.models', logging.WARN)


class Products(models.Model):
	""" Description and standard starting price of all DoctorCom products """
	description = models.CharField(max_length=255, blank=True)
	code = models.CharField(max_length=64, blank=True, unique=True)
	price = models.DecimalField(max_digits=20, decimal_places=2)

	class Meta:
		verbose_name_plural = "Products"

	def __unicode__(self):
		return "%s %s $%s" % (self.description, self.code, self.price)

# list of possible sources - freeform, user can edit for other
Ejemplo n.º 24
0
from MHLogin.DoctorCom.IVR.models import VMBox_Config
from MHLogin.KMS.utils import create_default_keys, generate_keys_for_users
from MHLogin.KMS.models import OwnerPublicKey, UserPrivateKey
from MHLogin.MHLUsers.decorators import RequireAdministrator
from MHLogin.MHLUsers.models import MHLUser, Provider, Physician, NP_PA, \
 OfficeStaff, Office_Manager, Nurse, Dietician
from MHLogin.utils.constants import USER_TYPE_DOCTOR, USER_TYPE_NPPA, \
 USER_TYPE_MEDICAL_STUDENT, USER_TYPE_OFFICE_MANAGER, USER_TYPE_NURSE, \
 USER_TYPE_DIETICIAN
from MHLogin.utils.mh_logging import get_standard_logger
from MHLogin.utils.templates import get_context
from MHLogin.utils.FileHelper import get_absolute_path, getTempFilePath
from MHLogin.MHLPractices.models import PracticeLocation

logger = get_standard_logger(
    '%s/Administration/views_qa.log' % (settings.LOGGING_ROOT),
    'Administration.views_qa', settings.LOGGING_LEVEL)


@RequireAdministrator
def qa_tools(request):
    context = get_context(request)
    if (settings.DEBUG):
        start = 0

        mobile_perm = Permission.objects.get_or_create(\
          codename='access_smartphone',
          name='Can use smartphone app',
          content_type=ContentType.objects.get_for_model(MHLUser))

        MHLUser.objects.update(mobile_phone='')
Ejemplo n.º 25
0
import json
from django.conf import settings
from django.http import HttpResponse

from MHLogin.apps.smartphone.v1.decorators import AppAuthentication
from MHLogin.utils.mh_logging import get_standard_logger 


# Setting up logging
logger = get_standard_logger('%s/apps/smartphone/v1/views_server.log' % (settings.LOGGING_ROOT), 
							'DCom.apps.smartphone.v1.views_server', settings.LOGGING_LEVEL)


@AppAuthentication
def info(request):
	response = {
		'warnings': {},
	}
	return HttpResponse(content=json.dumps(response), mimetype='application/json')

Ejemplo n.º 26
0
from django.conf import settings
from django.core.cache import cache
from django.core.files.uploadhandler import MemoryFileUploadHandler, StopUpload

import logging
import logging.handlers

from MHLogin.utils.mh_logging import get_standard_logger

# Setting up logging
LOG_FILENAME = '%s/utils/UploadHandlers.log' % (settings.LOGGING_ROOT, )

# Set up a specific logger with our desired output level
if (not 'logger' in locals()):
    logger = get_standard_logger(
        '%s/utils/UploadHandlers.log' % (settings.LOGGING_ROOT),
        'utils.UploadHandlers', settings.LOGGING_LEVEL)


class UploadProgressCachedHandler(MemoryFileUploadHandler):
    """
    Tracks progress for file uploads.
    The http post request must contain a query parameter, 'X-Progress-ID',
    which should contain a unique string to identify the upload to be tracked.
    """
    def __init__(self, request=None):
        super(UploadProgressCachedHandler, self).__init__(request)
        self.progress_id = None
        self.cache_key = None
        logging.debug("UploadProgressCachedHandler: __init__ " +
                      str(datetime.datetime.now()))
Ejemplo n.º 27
0
import logging

from django.conf import settings
from django.core.management.base import BaseCommand
from django.core.exceptions import ValidationError
from django.db import transaction
from django.db.models import Q
from optparse import make_option

from MHLogin.utils.geocode import geocode2
from MHLogin.utils.mh_logging import get_standard_logger 

# Setting up logging
logger = get_standard_logger('%s/utils/management/commands/command.log' % (settings.LOGGING_ROOT), 
							'set_user_coords', logging.INFO)


@transaction.commit_manually
class Command(BaseCommand):
	"""
	set_user_coords: This command will update user coordinates.
	For each MHLUser:
		If MHLUser has valid address and no longit/lat it will set longit/lat
		else If MHLUser has no valid address/longit/lat check if they are Provider, 
			Office_Staff, Office_Manager, Broker, etc..
			Find out which and check if they have a valid office_addres and longit/lat
			then copy those values into MHLUser address fields
	"""
	option_list = BaseCommand.option_list + (
		make_option('-s', '--show-only', action='store_true', dest='show',
Ejemplo n.º 28
0
from django.conf import settings
from MHLogin.utils.mh_logging import get_standard_logger

# logger for tech_admin package
logger = get_standard_logger('%s/Administration/tech_admin.log'%(settings.LOGGING_ROOT),
							'tech_admin', settings.LOGGING_LEVEL)

Ejemplo n.º 29
0
import traceback  # DEBUG

from django.db import models
from django.conf import settings
from django.contrib.auth.models import User
from django.template.loader import render_to_string
from django.utils.translation import ugettext_lazy as _

from MHLogin.MHLCallGroups.models import CallGroup
from MHLogin.utils.mh_logging import get_standard_logger
from MHLogin.utils.admin_utils import mail_admins

# Setting up logging
logger = get_standard_logger(
    '%s/MHLCallGroups/Scheduler/models.log' % (settings.LOGGING_ROOT),
    'MHLCallGroups.Scheduler.models', settings.LOGGING_LEVEL)

EVENT_TYPE_CHOICES = (
    ('0', _('Medical on-call')),
    ('1', _('Administrative on-call')),
)

ONCALL_LEVEL_CHOICES = (
    ('0', _('Primary')),
    ('1', _('Secondary')),
)

ONCALL_STATUS_CHOICES = (
    ('0', _('unconfirmed')),
    ('1', _('tentative')),
    ('2', _('confirmed')),
Ejemplo n.º 30
0
import logging

from django.conf import settings
from django.core.management.base import BaseCommand
from django.core.exceptions import ValidationError
from django.db import transaction
from django.db.models import Q
from optparse import make_option

from MHLogin.utils.geocode import geocode2
from MHLogin.utils.mh_logging import get_standard_logger

# Setting up logging
logger = get_standard_logger(
    '%s/utils/management/commands/command.log' % (settings.LOGGING_ROOT),
    'set_user_coords', logging.INFO)


@transaction.commit_manually
class Command(BaseCommand):
    """
	set_user_coords: This command will update user coordinates.
	For each MHLUser:
		If MHLUser has valid address and no longit/lat it will set longit/lat
		else If MHLUser has no valid address/longit/lat check if they are Provider, 
			Office_Staff, Office_Manager, Broker, etc..
			Find out which and check if they have a valid office_addres and longit/lat
			then copy those values into MHLUser address fields
	"""
    option_list = BaseCommand.option_list + (make_option(
        '-s',
Ejemplo n.º 31
0
from django.utils.translation import ugettext_lazy as _

from MHLogin.DoctorCom.IVR.models import VMBox_Config, VMMessage
from MHLogin.MHLSites.models import Site
from MHLogin.MHLPractices.models import PracticeLocation
from MHLogin.MHLUsers.validators import validate_phone
from MHLogin.utils.fields import UUIDField, MHLPhoneNumberField
from MHLogin.utils.constants import NATION_CHOICES, STATE_CHOICES, CARE_TYPE_CHOICES, \
	FORWARD_CHOICES, STAFF_TYPE_CHOICES, SPECIALTY_CHOICES, ROLE_TYPE, \
	STAFF_TYPE_CHOICES_EXTRA, YESNO_CHOICE, GENDER_CHOICES, SETTING_TIME_CHOICES, \
	CALLER_ANSSVC_CHOICES, TIME_ZONES_CHOICES, REFER_FORWARD_CHOICES, REFER_FORWARD_CHOICES_BOTH

from MHLogin.utils.mh_logging import get_standard_logger 

# Setting up logging
logger = get_standard_logger('%s/MHLUsers/models.log' % (settings.LOGGING_ROOT),
							'MHLUsers.models', settings.LOGGING_LEVEL)

VALIDATION_ERROR_MOBILE_EXISTS = _('A user with this mobile phone number already exists.')
VALIDATION_ERROR_EMAIL_EXISTS = _('A user with this email already exists.')
PHONE_NUMBER_HELP_TEXT = _("Please enter only digits. (e.g., 8005555555)")


class States(models.Model):
	nation = models.CharField(max_length=2, choices=NATION_CHOICES)
	state = models.CharField(max_length=2, choices=STATE_CHOICES)

	def __unicode__(self):
		return self.get_state_display()

	class Meta:
		unique_together = (('nation', 'state'),)
Ejemplo n.º 32
0

import logging

from django.conf import settings

from MHLogin.utils.mh_logging import get_standard_logger 

# Standard logger for speech
logger = get_standard_logger('%s/utils/utils.log' % (settings.LOGGING_ROOT),
							'utils', logging.WARN)


Ejemplo n.º 33
0
from MHLogin.apps.smartphone.models import SmartPhoneAssn
from MHLogin.apps.smartphone.v1.errlib import err_GE002, err_GE022, err_GE031,\
		err_GE100, err_DM002, err_DM020, err_DM005
from MHLogin.apps.smartphone.v1.forms import PushTokenForm
from MHLogin.apps.smartphone.v1.forms_device import AssociationForm, CheckInForm, \
	CheckUserForm, VersionUpdateForm
from MHLogin.apps.smartphone.v1.utils_messaging import rx_message_list_data, tx_message_list_data
from MHLogin.apps.smartphone.v1.utils import setSystemInfoToResponse
from MHLogin.apps.smartphone.v1.decorators import AppAuthentication
from MHLogin.utils.mh_logging import get_standard_logger 
from MHLogin.MHLUsers.utils import staff_is_active
from MHLogin.utils.constants import USER_TYPE_DOCTOR, USER_TYPE_OFFICE_STAFF, USER_TYPE_OFFICE_MANAGER
from MHLogin.MHLOrganization.utils import get_prefer_logo

# Setting up logging
logger = get_standard_logger('%s/apps/smartphone/v1/views_device.log' % \
	(settings.LOGGING_ROOT), 'DCom.apps.smartphone.v1.views_device', logging.DEBUG)


def check_user(request):
	if (request.method == 'GET'):
		return err_GE002()
	form = CheckUserForm(request.POST)
	if (not form.is_valid()):
		return err_GE031(form)

	try:
		User.objects.get(username=form.cleaned_data['username'])
		response = {
			'data': {
				},
			'warnings': {},
Ejemplo n.º 34
0
import logging

from django.conf import settings

from MHLogin.utils.mh_logging import get_standard_logger

# Standard logger for speech
logger = get_standard_logger('%s/KMS/kms.log' % 
		(settings.LOGGING_ROOT), 'kms', logging.DEBUG)

Ejemplo n.º 35
0
from MHLogin.utils import FileHelper
from MHLogin.utils.UploadHandlers import UploadProgressCachedHandler
from MHLogin.utils.mh_logging import get_standard_logger
from django.conf import settings
from django.core.cache import cache
from django.core.files.uploadhandler import StopUpload
from django.http import HttpResponse, HttpResponseBadRequest
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils import simplejson
import logging
from django.utils.translation import ugettext_lazy as _

# Setting up logging
logger = get_standard_logger(
    '%s/DoctorCom/Messaging/views_upload.log' % (settings.LOGGING_ROOT),
    'DoctorCom.Messaging.views_upload', settings.LOGGING_LEVEL)


def upload(request):
    """
	Handles upload message.

	:param request: The HTTP request
	:type request: django.core.handlers.wsgi.WSGIRequest  
	:returns: django.http.HttpResponse -- the result in an HttpResonse object 
	:raises: None
	"""
    if request.method == 'POST':
        ctx = dict()
        ctx["message"] = ""
Ejemplo n.º 36
0
from django.conf import settings
from django.core.cache import cache
from django.core.files.uploadhandler import MemoryFileUploadHandler, StopUpload

import logging
import logging.handlers

from MHLogin.utils.mh_logging import get_standard_logger 


# Setting up logging
LOG_FILENAME = '%s/utils/UploadHandlers.log'%(settings.LOGGING_ROOT,)

# Set up a specific logger with our desired output level
if (not 'logger' in locals()):
    logger = get_standard_logger('%s/utils/UploadHandlers.log'%(settings.LOGGING_ROOT), 
								'utils.UploadHandlers', settings.LOGGING_LEVEL)

class UploadProgressCachedHandler(MemoryFileUploadHandler):
    """
    Tracks progress for file uploads.
    The http post request must contain a query parameter, 'X-Progress-ID',
    which should contain a unique string to identify the upload to be tracked.
    """

    def __init__(self, request=None):
        super(UploadProgressCachedHandler, self).__init__(request)
        self.progress_id = None
        self.cache_key = None
        logging.debug("UploadProgressCachedHandler: __init__ " + str(datetime.datetime.now()))

    def handle_raw_input(self, input_data, META, content_length, boundary, encoding=None):
Ejemplo n.º 37
0
import time

from MHLogin.apps.smartphone.v1.apns import notify_new_message_iphones, notify_new_message_androids, \
		notify_message_status_iphones, notify_message_status_androids, notify_iphones,\
	notify_androids
from django.conf import settings
from MHLogin.apps.smartphone.models import SmartPhoneAssn
from MHLogin.utils.mh_logging import get_standard_logger

TIME_DISPLAY_FORMAT = '%m/%d/%Y %H:%M'

logger = get_standard_logger('%s/apps/smartphone/v1/utils.log' % (settings.LOGGING_ROOT), 
							'apps.smartphone.v1.utils', settings.LOGGING_LEVEL)

ASSOCIATIONS_KEY_IOS = "associations_ios"
ASSOCIATIONS_KEY_ANDROID = "associations_android"

TAB_CHANGE_SUPPORT_VERSION = {
	ASSOCIATIONS_KEY_IOS: "1.42.00",
	ASSOCIATIONS_KEY_ANDROID: "1.57.00"
}


def notify(associations, text=None, count=None, additional_data=None):
	"""Notify client message's new message is coming,
		:param associations: list of SmartPhoneAssn.
		:param text: notification's content, string format.
		:param count: number of this user's current unread message.
		:param additional_data: additional data, json format.
	"""
Ejemplo n.º 38
0
import urlparse 

from django.utils import unittest
from django.test.client import Client
from django.conf import settings
from django.core.urlresolvers import reverse

from MHLogin.utils.mh_logging import get_standard_logger 
from MHLogin.MHLUsers.models import MHLUser, Salesperson, Administrator, Provider, Physician
from MHLogin.MHLPractices.models import PracticeLocation
from MHLogin.MHLSites.models import Site
from MHLogin.utils.tests import create_user
from MHLogin.utils.decorators import skipIfUrlFails

# Setting up logging
logger = get_standard_logger('%s/analytics/tests.log' % (settings.LOGGING_ROOT),
							'analytics.tests', settings.LOGGING_LEVEL)


class AnalyticsUnitTest(unittest.TestCase):
	""" Sales unittester for creating Salesperson, Salse Products, Sales Leads
		and verifying everything stays in sync with no errors or failures
	"""
	@classmethod
	def setUpClass(cls):  # done once for all AnalyticsUnitTest
		# needed at login
		# create admin and test user
		cls.admin = create_user("sduper", "super", "duper", "demo", 
							"Ocean Avenue", "Carmel", "CA", "93921", uklass=Administrator)
		cls.guest = create_user("cbear", "care", "bear", "demo", 
							"Winchester Blvd.", "San Jose", "CA", uklass=Salesperson)
		cls.practice = PracticeLocation.objects.create(practice_name='Beach bums',
Ejemplo n.º 39
0
from MHLogin.MHLPractices.forms_staffsearch import AssociationProviderIdForm, \
	AssociationAssocIdForm, ProviderByMailForm
from MHLogin.MHLPractices.utils import mail_add_association, mail_managers, \
	 changeCurrentPracticeForStaff
from MHLogin.MHLPractices.models import PracticeLocation, Pending_Association, Log_Association
from MHLogin.MHLUsers.utils import get_all_practice_managers
from MHLogin.MHLUsers.models import Office_Manager, OfficeStaff, MHLUser,\
	Provider, Physician, Dietician, Nurse
from MHLogin.utils import ImageHelper
from MHLogin.utils.mh_logging import get_standard_logger

from MHLogin.MHLCallGroups.Scheduler.utils import SessionHelper
from MHLogin.apps.smartphone.v1.utils import notify_user_tab_changed

# Setting up logging
logger = get_standard_logger('%s/MHLPractices/views_ajax.log' % (settings.LOGGING_ROOT),
							'MHLPractices.views_ajax', settings.LOGGING_LEVEL)


def _get_specialty(provider):
	phys = Physician.objects.filter(user=provider)
	if (not phys.exists()):
		return ''
	return phys.get().get_specialty_display()

def get_office_user_type(staff_id, practice):
	if Office_Manager.objects.filter(user__pk=staff_id, practice=practice).exists():
		return _("Practice Manager")
	if Dietician.objects.filter(user__pk=staff_id).exists():
		return _("Dietician")
	if Nurse.objects.filter(user__pk=staff_id).exists():
		return _("Nurse")
Ejemplo n.º 40
0
from MHLogin.DoctorCom.IVR.models import VMBox_Config
from MHLogin.DoctorCom.SMS.views import sendSMS_Twilio_newMessage
from MHLogin.apps.smartphone.models import SmartPhoneAssn
from MHLogin.apps.smartphone.v1.utils import notify
from exceptions import InvalidRecipientException
from MHLogin.MHLPractices.models import PracticeLocation

from MHLogin.utils.admin_utils import mail_admins
from MHLogin.utils.fields import UUIDField, MHLPhoneNumberField
from MHLogin.utils.mh_logging import get_standard_logger
from MHLogin.utils.storage import get_file, create_file

from smtplib import SMTPException

# Setting up logging
logger = get_standard_logger('%s/DoctorCom/Messaging/models.log' % (settings.LOGGING_ROOT), 
							'DoctorCom.Messaging.models', settings.LOGGING_LEVEL)


MESSAGE_RELATION_CHOICES = (
	('RE', _('Reply')),
	('FW', _('Forward')),
)

MESSAGE_TYPES = (
	("ANS", _("Answering Service")),
	("NM", _("Normal")),
	("SMS", _("Text Message")),
	("VM", _("Voice Mail")),
	("RF", _("Referral")),
)
Ejemplo n.º 41
0
import logging

from django.conf import settings

from MHLogin.utils.mh_logging import get_standard_logger

# Standard logger for speech
logger = get_standard_logger(
    '%s/DoctorCom/speech/speech.log' % (settings.LOGGING_ROOT), 'DCom.speech',
    logging.DEBUG)
Ejemplo n.º 42
0
	set_providers_result, get_community_professionals, set_practice_members_result, \
	update_staff_address_info_by_practice, get_practice_org, get_all_site_staff, \
	set_site_staff_result
from MHLogin.genbilling.models import Account
from MHLogin.utils import ImageHelper
from MHLogin.utils.errlib import err403
from MHLogin.utils.mh_logging import get_standard_logger
from MHLogin.utils.templates import phone_formater, get_context
from MHLogin.utils.timeFormat import hour_format, minute_format, \
	getDisplayedTimeZone, OLD_TIME_ZONES_MIGRATION


MSG_ACTIVE_OR_EMAIL_WRONG = _('Your active code or email is wrong. Please check your email.')

# Setting up logging
logger = get_standard_logger('%s/MHLPractices/views.log' % (settings.LOGGING_ROOT),
							'MHLPractices.views', settings.LOGGING_LEVEL)


def practice_main_view(request):
	"""Displays office manager/staff home page."""

	if (not 'OfficeStaff' in request.session['MHL_UserIDs']):
		return err403(request)
		#print "%s %s is an Office_Manager"%(request.user.first_name, request.user.last_name)

	context = get_context(request)
	providerDict = dict()
	siteStaffDict = dict()
	local_practicesDict = dict()
	comm_professionalsDict = dict()
	practice_membersDict = dict()
Ejemplo n.º 43
0
Created on 2011-11-23

@author: mwang
'''
from Crypto.Cipher import AES
from django.conf import settings
import os
import tempfile
import time
import uuid

from MHLogin.utils.mh_logging import get_standard_logger

# Setting up logging
logger = get_standard_logger(
    '%s/utils/FileHelper.log' % (settings.LOGGING_ROOT), 'utils.FileHelper',
    settings.LOGGING_LEVEL)

temp_file_prefix = "temp_"
attachments_temp_root = settings.ATTACHMENTS_TEMP_ROOT

if (attachments_temp_root and os.path.exists(attachments_temp_root)):
    tempfile.tempdir = attachments_temp_root


def generateTempFile(str, key=None):
    suffix = "".join(["_", uuid.uuid4().hex])
    temp_file = tempfile.NamedTemporaryFile(prefix=temp_file_prefix,
                                            suffix=suffix,
                                            delete=False)
    if key:
Ejemplo n.º 44
0
from MHLogin.MHLCallGroups.utils import checkMultiCallGroupId, canAccessMultiCallGroup

from MHLogin.MHLUsers.utils import user_is_mgr_of_practice_id,get_fullname
from MHLogin.MHLOrganization.utils import get_org_type_name
from MHLogin.MHLPractices.models import PracticeLocation

# Scheduler imports
from MHLogin.MHLCallGroups.Scheduler.models import EventEntry
from MHLogin.MHLCallGroups.Scheduler.forms import DateEntryForm, BulkEventForm
from MHLogin.MHLCallGroups.Scheduler.utils import rulesCheckInternal, SessionHelper, \
	export_schedule_to_pdf, checkDSEventConsistency, checkSchedulerView, validateNewEvent

from MHLogin.utils.mh_logging import get_standard_logger 

# Setting up logging
logger = get_standard_logger('%s/MHLCallGroups/Scheduler/views.log' % 
	(settings.LOGGING_ROOT), 'MHLCallGroups.Scheduler.views', logging.DEBUG)


def display_scheduler(request, practice_id, callgroup_id):
	if not user_is_mgr_of_practice_id(request.user, practice_id):
		return err403(request)

	context = get_context(request)
	context['raw_callgroup_id'] = callgroup_id
	callgroup_old_id = None
	if not callgroup_id or callgroup_id in [0, '0'] and \
			SessionHelper.CURRENT_CALLGROUP_ID in request.session.keys():
		callgroup_id = request.session[SessionHelper.CURRENT_CALLGROUP_ID]

	if SessionHelper.CURRENT_CALLGROUP_ID in request.session.keys():
		callgroup_old_id = request.session[SessionHelper.CURRENT_CALLGROUP_ID]
Ejemplo n.º 45
0
'''
Created on 2011-11-23

@author: mwang
'''
from Crypto.Cipher import AES
from django.conf import settings
import os
import tempfile
import time
import uuid

from MHLogin.utils.mh_logging import get_standard_logger 

# Setting up logging
logger = get_standard_logger('%s/utils/FileHelper.log' % 
		(settings.LOGGING_ROOT), 'utils.FileHelper', settings.LOGGING_LEVEL)


temp_file_prefix = "temp_"
attachments_temp_root = settings.ATTACHMENTS_TEMP_ROOT

if (attachments_temp_root and os.path.exists(attachments_temp_root)):
	tempfile.tempdir = attachments_temp_root


def generateTempFile(str, key=None):
	suffix = "".join(["_", uuid.uuid4().hex])
	temp_file = tempfile.NamedTemporaryFile(prefix=temp_file_prefix, suffix=suffix, delete=False)
	if key:
		padded = str + ' ' * ((16 - (len(str) % 16)) % 16)
		a = AES.new(key)  # TODO: when rm #2212 in use aes_encrypt in kms/utils