예제 #1
0
def viewUserDebts(request, userKey=None):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from tuition.utils.manager import AppManager
    from models import Debt
    from forms import DebtForm, ExpenseYearFilter, DebtReturnForm
    from tuition.utils.appConstants import MONTH_NUM_FULL_NAME_DICT
    from tuition.utils.utils import ExportHandle, ExportClassHandle

    # keyToSetReminder = request.GET.get('key', None)
    # if keyToSetReminder:
    #   debt = Debt.get(keyToSetReminder)
    #   serializedObjectList = [debt.toDict]
    #   GoogleCalendarService()
    loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
    form = DebtForm(initial={'incurredDate' : datetime.date.today().strftime('%d/%m/%Y')})
    markAsReturnForm = DebtReturnForm()
    template_values = {
                       'loggedInEmployee'   : loggedInEmployee,
                       'yearFilterForm'     : ExpenseYearFilter(),
                       'monthNameDict'      : MONTH_NUM_FULL_NAME_DICT,
                       'exportHandle'       : ExportHandle.asDict(),
                       'classHandle'        : ExportClassHandle.asDict(),
                       'form'               : form,
                       'markAsReturnForm'   : markAsReturnForm
                       }
    return render_to_response('viewDebts.html', template_values, context_instance=RequestContext(request))
예제 #2
0
def profile(request):
	from tuition.settings import SITE_SUPPORT_EMAIL
	from tuition.utils.utils import GooglePlusService
	from tuition.utils.manager import AppManager
	from forms import UserRegistrationForm

	user = AppManager.getCurrentLoggedInUser()
	loggedInEmployee = AppManager.getUserByEmail(user.email())
	loggedInEmployee.id = user.user_id()
	response = GooglePlusService(request=request, loggedInEmployee=loggedInEmployee).getUserInfo(setImageSize=250)
	if isinstance(response, dict):
		locationFromPlus = response.get('userInfo', {}).get('currentLocation', '')
		if not locationFromPlus:
			placesLived = response.get('userInfo', {}).get('placesLived', [])
			if placesLived and placesLived[0].get('primary'):
				locationFromPlus = placesLived[0].get('value')
		template_values = {
			'form' : UserRegistrationForm(initial={
				'firstName' : loggedInEmployee.firstName,
				'lastName'  : loggedInEmployee.lastName,
				'alternateEmail' : loggedInEmployee.alternateEmail,
				'dob' : loggedInEmployee.dob.strftime('%d/%m/%Y'),
				'about' : loggedInEmployee.about or ''
			}),
			'loggedInEmployee' : loggedInEmployee,
			'publicProfile' : response.get('userInfo', {}).get('url', '#'),
			'imageUrl' : response.get('userInfo', {}).get('image', {}).get('url', '/images/emptyProfile.gif'),
			'locationFromPlus' : locationFromPlus,
			'about' : response.get('userInfo', {}).get('aboutMe', '')
		}
		return render_to_response('userProfile.html', template_values, context_instance=RequestContext(request))
	return response
예제 #3
0
def viewUserDebts(request, userKey=None):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from tuition.utils.manager import AppManager
    from models import Debt
    from forms import DebtForm, ExpenseYearFilter, DebtReturnForm
    from tuition.utils.appConstants import MONTH_NUM_FULL_NAME_DICT
    from tuition.utils.utils import ExportHandle, ExportClassHandle

    # keyToSetReminder = request.GET.get('key', None)
    # if keyToSetReminder:
    #   debt = Debt.get(keyToSetReminder)
    #   serializedObjectList = [debt.toDict]
    #   GoogleCalendarService()
    loggedInEmployee = AppManager.getUserByEmail(
        AppManager.getCurrentLoggedInUser().email())
    form = DebtForm(
        initial={'incurredDate': datetime.date.today().strftime('%d/%m/%Y')})
    markAsReturnForm = DebtReturnForm()
    template_values = {
        'loggedInEmployee': loggedInEmployee,
        'yearFilterForm': ExpenseYearFilter(),
        'monthNameDict': MONTH_NUM_FULL_NAME_DICT,
        'exportHandle': ExportHandle.asDict(),
        'classHandle': ExportClassHandle.asDict(),
        'form': form,
        'markAsReturnForm': markAsReturnForm
    }
    return render_to_response('viewDebts.html',
                              template_values,
                              context_instance=RequestContext(request))
예제 #4
0
def contributor(request):
    from tuition.utils.manager import AppManager

    template_values = {
        'loggedInEmployee'   : AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
    }
    return render_to_response('contributors.html', template_values, context_instance=RequestContext(request))    
예제 #5
0
def home(request):
    from tuition.utils.manager import AppManager, UserFilter

    UserFilter().checkUserRole(request.path)

    template_values = {
                       'loggedInEmployee'   : AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email()),
                       }
    return render_to_response('home.html', template_values, context_instance=RequestContext(request))
예제 #6
0
def export(request):
  import datetime
  from tuition.settings import SITE_SUPPORT_EMAIL
  from tuition.utils.manager import AppManager
  from tuition.utils.utils import ExportSelector, EXPORT_HANDLE_LABELS, getMonthEnd

  serializedObjectList = []
  linkToFile = None
  fileName = None
  isSaved = False
  noData = True
  invalidHandle = True
  response = {}

  classHandle = request.GET.get('classHandle', None)
  exportHandle = request.GET.get('handle', None)
  exportDate = datetime.datetime.strptime(request.GET.get('date', datetime.date.today().strftime('%d_%m_%Y')), '%d_%m_%Y')
  firstOfMonth = datetime.date(exportDate.year, exportDate.month, 1)
  endOfMonth = datetime.date(exportDate.year, exportDate.month, getMonthEnd(exportDate.month, exportDate.year))
  loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())

  classWrapper = ExportSelector.getClass(classHandle)
  dataList = classWrapper().getForPeriod(loggedInEmployee.key(), firstOfMonth, endOfMonth)
  if dataList:
    noData = False
    for data in dataList:
      serializedObjectList.append(data.toDict)
    exporterClass = ExportSelector.getHandle(exportHandle)
    if exporterClass:
      invalidHandle = False
      exporterInstance = exporterClass(
          serializedObjects=serializedObjectList, 
          request=request, 
          remove=['key', 'user', 'calendarReminderURL', 'createdOn', 'updatedOn'],
          date=exportDate,
          namePrefix=classHandle
      )
      response = exporterInstance.upload()
  if isinstance(response, dict):
    isSaved = response.get('isSaved')
    linkToFile = response.get('fileResponse', {}).get('alternateLink')
    fileName = response.get('fileResponse', {}).get('title')
    template_values = {
      'isSaved'            : isSaved, 
      'linkToFile'         : linkToFile,
      'fileName'           : fileName,
      'handle'             : EXPORT_HANDLE_LABELS.get(exportHandle, exportHandle),
      'classHandle'        : classHandle,
      'invalidHandle'      : invalidHandle,
      'noData'             : noData,
      'loggedInEmployee'   : loggedInEmployee
    }
    return render_to_response('exportFinish.html', template_values, context_instance=RequestContext(request))
  else:
    return response
예제 #7
0
def addADebt(request):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from forms import DebtForm
    from tuition.utils.manager import AppManager

    form = DebtForm(initial={'incurredDate' : datetime.date.today().strftime('%d/%m/%Y')})
    template_values = {
                       'form'               : form,
                       'loggedInEmployee'   : AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
                       }
    return render_to_response('newDebt.html', template_values, context_instance=RequestContext(request))
예제 #8
0
def export(request):
  import datetime
  from tuition.settings import SITE_SUPPORT_EMAIL
  from tuition.utils.manager import AppManager
  from tuition.tools.models import Expenses
  from tuition.utils.utils import ExportSelector, EXPORT_HANDLE_LABELS, getMonthEnd

  serializedObjectList = []
  linkToFile = None
  fileName = None
  isSaved = False
  invalidHandle = True
  response = {}

  exportHandle = request.GET.get('handle', None)
  exportDate = datetime.datetime.strptime(request.GET.get('date', datetime.date.today().strftime('%d_%m_%Y')), '%d_%m_%Y')
  firstOfMonth = datetime.date(exportDate.year, exportDate.month, 1)
  endOfMonth = datetime.date(exportDate.year, exportDate.month, getMonthEnd(exportDate.month, exportDate.year))
  loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())

  expensesList = Expenses.all().filter('user ='******'dateOfExpense >=', firstOfMonth).filter('dateOfExpense <=', endOfMonth).order('-dateOfExpense').fetch(limit=1000)
  if expensesList:
    for expense in expensesList:
      serializedObjectList.append(expense.toDict)
    exporterClass = ExportSelector.get(exportHandle)
    if exporterClass:
      invalidHandle = False
      exporterInstance = exporterClass(
          serializedObjects=serializedObjectList, 
          request=request, 
          remove=['key', 'user'], 
          date=exportDate
      )
      response = exporterInstance.upload()
    if isinstance(response, dict):
      isSaved = response.get('isSaved')
      linkToFile = response.get('fileResponse', {}).get('alternateLink')
      fileName = response.get('fileResponse', {}).get('title')
      template_values = {
        'isSaved'            : isSaved, 
        'linkToFile'         : linkToFile,
        'fileName'           : fileName,
        'handle'             : EXPORT_HANDLE_LABELS.get(exportHandle, exportHandle),
        'invalidHandle'      : invalidHandle,  
        'loggedInEmployee'   : loggedInEmployee,
        'url'                : AppManager.createLogoutURL(),
        'homePage'           : '/',
        'supportEmail'       : SITE_SUPPORT_EMAIL
      }
      return render_to_response('exportFinish.html', template_values)
    else:
      return response
	def getTodaysExpense(self):
		import datetime
		from tuition.tools.models import Expenses
		from tuition.utils.manager import AppManager

		serializedObjects = []
		loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
		today = datetime.date.today()
		todaysExpense = Expenses.all().filter('user ='******'dateOfExpense =', today).order('-dateOfExpense')
		todaysExpense = todaysExpense.fetch(limit=1000)
		for expense in todaysExpense:
			serializedObjects.append(expense.toDict)
		return self.respond(expenses=serializedObjects)
예제 #10
0
def home(request):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from tuition.utils.manager import AppManager, UserFilter

    UserFilter().checkUserRole(request.path)

    template_values = {
                       'loggedInEmployee'   : AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email()),
                       'url'                : AppManager.createLogoutURL(),
                       'homePage'           : '/',
                       'supportEmail'       : SITE_SUPPORT_EMAIL
                       }
    return render_to_response('home.html', template_values)
예제 #11
0
	def getTodaysDebt(self):
		import datetime
		from tuition.tools.models import Debt
		from tuition.utils.manager import AppManager

		serializedObjects = []
		loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
		today = datetime.date.today()
		todaysDebt = Debt.all().filter('user ='******'incurredDate =', today).order('-incurredDate')
		todaysDebt = todaysDebt.fetch(limit=1000)
		for debt in todaysDebt:
			serializedObjects.append(debt.toDict)
		return self.respond(debts=serializedObjects)
예제 #12
0
	def getExpenseOfYear(self, value):
		import datetime
		from tuition.tools.models import Expenses
		from tuition.utils.manager import AppManager
		from tuition.utils.appConstants import MONTH_NUM_FULL_NAME_DICT

		serializedList = []
		year = int(value.get('year', 2013))
		dateToCheck = datetime.date(year, 1, 1)
		loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
		expenseOfTheYear = Expenses.all().filter('user ='******'dateOfExpense >=', dateToCheck).fetch(1000)
		for expense in expenseOfTheYear:
			serializedList.append(expense.toDict)
		return self.respond(expenses=serializedList)
예제 #13
0
	def getExpenseThisWeek(self):
		import datetime
		from tuition.tools.models import Expenses
		from tuition.utils.manager import AppManager
		from tuition.utils.utils import weekStartEnd

		serializedObjects = []
		loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
		startOfWeek = weekStartEnd().get('start')
		thisWeeksExpense = Expenses.all().filter('user ='******'dateOfExpense >=', startOfWeek).order('-dateOfExpense')
		thisWeeksExpense = thisWeeksExpense.fetch(limit=1000)
		for expense in thisWeeksExpense:
			serializedObjects.append(expense.toDict)
		return self.respond(expenses=serializedObjects)
예제 #14
0
def addAnExpense(request):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from forms import ExpenseForm
    from tuition.utils.manager import AppManager

    form = ExpenseForm(initial={'dateOfExpense' : datetime.date.today().strftime('%d/%m/%Y')})
    template_values = {
                       'form'               : form,
                       'loggedInEmployee'   : AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email()),
                       'url'                : AppManager.createLogoutURL(),
                       'homePage'           : '/',
                       'supportEmail'       : SITE_SUPPORT_EMAIL
                       }
    return render_to_response('newExpense.html', template_values)
예제 #15
0
	def getDebtThisWeek(self):
		import datetime
		from tuition.tools.models import Debt
		from tuition.utils.manager import AppManager
		from tuition.utils.utils import weekStartEnd

		serializedObjects = []
		loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
		startOfWeek = weekStartEnd().get('start')
		thisWeeksDebt = Debt.all().filter('user ='******'incurredDate >=', startOfWeek).order('-incurredDate')
		thisWeeksDebt = thisWeeksDebt.fetch(limit=1000)
		for debt in thisWeeksDebt:
			serializedObjects.append(debt.toDict)
		return self.respond(debts=serializedObjects)
예제 #16
0
	def getDebtOfYear(self, value):
		import datetime
		from tuition.tools.modelWrapper import DebtWrapper
		from tuition.utils.manager import AppManager
		from tuition.utils.appConstants import MONTH_NUM_FULL_NAME_DICT

		serializedList = []
		year = int(value.get('year', 2013))
		firstOfYear = datetime.date(year, 1, 1)
		endOfYear = datetime.date(year, 12, 31)
		loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
		debtOfTheYear = DebtWrapper().getForPeriod(loggedInEmployee.key(), firstOfYear, endOfYear)
		for debt in debtOfTheYear:
			serializedList.append(debt.toDict)
		return self.respond(debts=serializedList)
예제 #17
0
def addRole(request):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from tuition.role.forms import RoleAddForm
    from tuition.utils.manager import UserFilter, AppManager

    UserFilter().checkUserRole(request.path)
    template_values = {
                       'loggedInEmployee'   : AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email()),
                       'url'                : AppManager.createLogoutURL(),
                       'homePage'           : '/',
                       'supportEmail'       : SITE_SUPPORT_EMAIL,
                       'permissions'        : PERMISSIONS,
                       'form'               : RoleAddForm()
                       }
    return render_to_response('addRole.html', template_values)
예제 #18
0
def viewRoles(request):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from tuition.role.models import Role
    from tuition.utils.manager import UserFilter, AppManager

    UserFilter().checkUserRole(request.path)
    roles = Role.all().fetch(limit = 1000)
    template_values = {
                       'loggedInEmployee'   : AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email()),
                       'url'                : AppManager.createLogoutURL(),
                       'homePage'           : '/',
                       'supportEmail'       : SITE_SUPPORT_EMAIL,
                       'roles'              : roles,
                       'permissions'        : PERMISSIONS
                       }
    return render_to_response('viewRoles.html', template_values)
예제 #19
0
def addADebt(request):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from forms import DebtForm
    from tuition.utils.manager import AppManager

    form = DebtForm(
        initial={'incurredDate': datetime.date.today().strftime('%d/%m/%Y')})
    template_values = {
        'form':
        form,
        'loggedInEmployee':
        AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
    }
    return render_to_response('newDebt.html',
                              template_values,
                              context_instance=RequestContext(request))
예제 #20
0
	def saveDebt(self, serializedFormValues):
		from tuition.utils.manager import AppManager
		from tuition.tools.forms import DebtForm
		from tuition.tools.models import Debt, Expenses

		modelsToPut = []
		savedExpenseKey = None
		savedDebtKey = None
		form = DebtForm(data = serializedFormValues)
		loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
		if form.is_valid():
			dictToSave = {
			    'user' 				: loggedInEmployee.key(),
			    'type'				: form.cleaned_data['type'],
			    'amount'			: form.cleaned_data['amount'],
			    'incurredDate'		: form.cleaned_data['incurredDate'],
			    'returnDate'		: form.cleaned_data['returnDate'],
			    'expenseOfMonth'	: form.cleaned_data['expenseOfMonth'],
			    'hasReturned'		: form.cleaned_data['hasReturned'],
			    'comments'			: form.cleaned_data['comments']
			}
			newDebt = Debt(**dictToSave)
			modelsToPut.append(newDebt)

			if form.cleaned_data['hasReturned']:
				dictToSave = {
			    'user' 				: loggedInEmployee.key(),
			    'type'				: 'Debt Return',
			    'amount'			: newDebt.amount,
			    'dateOfExpense'		: form.cleaned_data['expenseOfMonth'],
			    'comments'			: ''
				}
				newExpense = Expenses(**dictToSave)
				modelsToPut.append(newExpense)

			if len(modelsToPut) > 1:
				savedDebtKey, savedExpenseKey = db.put(modelsToPut)
			elif len(modelsToPut) == 1:
				savedDebtKey = db.put(modelsToPut)
			return self.respond(
				isSaved=True, 
				savedDebtKey=str(savedDebtKey),
				savedExpenseKey=str(savedExpenseKey),
				savedDebt=newDebt.toDict
			)
		else:
			return self.respond(isSaved=False, errors=form.errors)
예제 #21
0
    def getTodaysExpense(self):
        import datetime
        from tuition.tools.models import Expenses
        from tuition.utils.manager import AppManager

        serializedObjects = []
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        today = datetime.date.today()
        todaysExpense = Expenses.all().filter(
            'user ='******'dateOfExpense =',
                                           today).order('-dateOfExpense')
        todaysExpense = todaysExpense.fetch(limit=1000)
        for expense in todaysExpense:
            serializedObjects.append(expense.toDict)
        return self.respond(expenses=serializedObjects)
예제 #22
0
    def saveDebt(self, serializedFormValues):
        from tuition.utils.manager import AppManager
        from tuition.tools.forms import DebtForm
        from tuition.tools.models import Debt, Expenses

        modelsToPut = []
        savedExpenseKey = None
        savedDebtKey = None
        form = DebtForm(data=serializedFormValues)
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        if form.is_valid():
            dictToSave = {
                'user': loggedInEmployee.key(),
                'type': form.cleaned_data['type'],
                'amount': form.cleaned_data['amount'],
                'incurredDate': form.cleaned_data['incurredDate'],
                'returnDate': form.cleaned_data['returnDate'],
                'expenseOfMonth': form.cleaned_data['expenseOfMonth'],
                'hasReturned': form.cleaned_data['hasReturned'],
                'comments': form.cleaned_data['comments']
            }
            newDebt = Debt(**dictToSave)
            modelsToPut.append(newDebt)

            if form.cleaned_data['hasReturned']:
                dictToSave = {
                    'user': loggedInEmployee.key(),
                    'type': 'Debt Return',
                    'amount': newDebt.amount,
                    'dateOfExpense': form.cleaned_data['expenseOfMonth'],
                    'comments': ''
                }
                newExpense = Expenses(**dictToSave)
                modelsToPut.append(newExpense)

            if len(modelsToPut) > 1:
                savedDebtKey, savedExpenseKey = db.put(modelsToPut)
            elif len(modelsToPut) == 1:
                savedDebtKey = db.put(modelsToPut)
            return self.respond(isSaved=True,
                                savedDebtKey=str(savedDebtKey),
                                savedExpenseKey=str(savedExpenseKey),
                                savedDebt=newDebt.toDict)
        else:
            return self.respond(isSaved=False, errors=form.errors)
예제 #23
0
    def getTodaysDebt(self):
        import datetime
        from tuition.tools.models import Debt
        from tuition.utils.manager import AppManager

        serializedObjects = []
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        today = datetime.date.today()
        todaysDebt = Debt.all().filter('user ='******'incurredDate =',
                                           today).order('-incurredDate')
        todaysDebt = todaysDebt.fetch(limit=1000)
        for debt in todaysDebt:
            serializedObjects.append(debt.toDict)
        return self.respond(debts=serializedObjects)
예제 #24
0
def profile(request):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from tuition.utils.utils import GooglePlusService
    from tuition.utils.manager import AppManager
    from forms import UserRegistrationForm

    user = AppManager.getCurrentLoggedInUser()
    loggedInEmployee = AppManager.getUserByEmail(user.email())
    loggedInEmployee.id = user.user_id()
    response = GooglePlusService(
        request=request,
        loggedInEmployee=loggedInEmployee).getUserInfo(setImageSize=250)
    if isinstance(response, dict):
        locationFromPlus = response.get('userInfo',
                                        {}).get('currentLocation', '')
        if not locationFromPlus:
            placesLived = response.get('userInfo', {}).get('placesLived', [])
            if placesLived and placesLived[0].get('primary'):
                locationFromPlus = placesLived[0].get('value')
        template_values = {
            'form':
            UserRegistrationForm(
                initial={
                    'firstName': loggedInEmployee.firstName,
                    'lastName': loggedInEmployee.lastName,
                    'alternateEmail': loggedInEmployee.alternateEmail,
                    'dob': loggedInEmployee.dob.strftime('%d/%m/%Y'),
                    'about': loggedInEmployee.about or ''
                }),
            'loggedInEmployee':
            loggedInEmployee,
            'publicProfile':
            response.get('userInfo', {}).get('url', '#'),
            'imageUrl':
            response.get('userInfo',
                         {}).get('image', {}).get('url',
                                                  '/images/emptyProfile.gif'),
            'locationFromPlus':
            locationFromPlus,
            'about':
            response.get('userInfo', {}).get('aboutMe', '')
        }
        return render_to_response('userProfile.html',
                                  template_values,
                                  context_instance=RequestContext(request))
    return response
예제 #25
0
    def getDebtOfYear(self, value):
        import datetime
        from tuition.tools.modelWrapper import DebtWrapper
        from tuition.utils.manager import AppManager
        from tuition.utils.appConstants import MONTH_NUM_FULL_NAME_DICT

        serializedList = []
        year = int(value.get('year', 2013))
        firstOfYear = datetime.date(year, 1, 1)
        endOfYear = datetime.date(year, 12, 31)
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        debtOfTheYear = DebtWrapper().getForPeriod(loggedInEmployee.key(),
                                                   firstOfYear, endOfYear)
        for debt in debtOfTheYear:
            serializedList.append(debt.toDict)
        return self.respond(debts=serializedList)
예제 #26
0
    def getExpenseOfYear(self, value):
        import datetime
        from tuition.tools.models import Expenses
        from tuition.utils.manager import AppManager
        from tuition.utils.appConstants import MONTH_NUM_FULL_NAME_DICT

        serializedList = []
        year = int(value.get('year', 2013))
        dateToCheck = datetime.date(year, 1, 1)
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        expenseOfTheYear = Expenses.all().filter(
            'user ='******'dateOfExpense >=',
                                                     dateToCheck).fetch(1000)
        for expense in expenseOfTheYear:
            serializedList.append(expense.toDict)
        return self.respond(expenses=serializedList)
예제 #27
0
	def getExpenseThisMonth(self, values):
		import datetime
		from tuition.tools.models import Expenses
		from tuition.utils.manager import AppManager
		from tuition.utils.utils import getMonthEnd

		serializedObjects = []
		year = int(values.get('year', 2013))
		month = int(values.get('month', datetime.date.today().month))
		loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
		firstOfMonth = datetime.date(year, month, 1)
		endOfMonth = datetime.date(year, month, getMonthEnd(month, year))
		thisMonthExpense = Expenses.all().filter('user ='******'dateOfExpense >=', firstOfMonth).filter('dateOfExpense <=', endOfMonth).order('-dateOfExpense')
		thisMonthExpense = thisMonthExpense.fetch(limit=1000)
		for expense in thisMonthExpense:
			serializedObjects.append(expense.toDict)
		return self.respond(expenses=serializedObjects)
예제 #28
0
    def getDebtThisWeek(self):
        import datetime
        from tuition.tools.models import Debt
        from tuition.utils.manager import AppManager
        from tuition.utils.utils import weekStartEnd

        serializedObjects = []
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        startOfWeek = weekStartEnd().get('start')
        thisWeeksDebt = Debt.all().filter(
            'user ='******'incurredDate >=',
                                           startOfWeek).order('-incurredDate')
        thisWeeksDebt = thisWeeksDebt.fetch(limit=1000)
        for debt in thisWeeksDebt:
            serializedObjects.append(debt.toDict)
        return self.respond(debts=serializedObjects)
예제 #29
0
    def getExpenseThisWeek(self):
        import datetime
        from tuition.tools.models import Expenses
        from tuition.utils.manager import AppManager
        from tuition.utils.utils import weekStartEnd

        serializedObjects = []
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        startOfWeek = weekStartEnd().get('start')
        thisWeeksExpense = Expenses.all().filter(
            'user ='******'dateOfExpense >=',
                                           startOfWeek).order('-dateOfExpense')
        thisWeeksExpense = thisWeeksExpense.fetch(limit=1000)
        for expense in thisWeeksExpense:
            serializedObjects.append(expense.toDict)
        return self.respond(expenses=serializedObjects)
예제 #30
0
def viewUserExpenses(request, userKey=None):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from tuition.utils.manager import AppManager
    from models import Expenses
    from forms import ExpenseForm, ExpenseYearFilter
    from tuition.utils.appConstants import MONTH_NUM_FULL_NAME_DICT
    from tuition.utils.utils import ExportHandle, ExportClassHandle

    loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
    form = ExpenseForm(initial={'dateOfExpense' : datetime.date.today().strftime('%d/%m/%Y')})
    template_values = {
                       'loggedInEmployee'   : loggedInEmployee,
                       'yearFilterForm'     : ExpenseYearFilter(),
                       'monthNameDict'      : MONTH_NUM_FULL_NAME_DICT,
                       'exportHandle'       : ExportHandle.asDict(),
                       'classHandle'        : ExportClassHandle.asDict(),
                       'form'               : form
                       }
    return render_to_response('viewExpenses.html', template_values, context_instance=RequestContext(request))
예제 #31
0
	def saveAnExpense(self, serializedFormValues):
		from tuition.utils.manager import AppManager
		from tuition.tools.forms import ExpenseForm
		from tuition.tools.models import Expenses

		form = ExpenseForm(data = serializedFormValues)
		loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
		if form.is_valid():
			dictToSave = {
			    'user' 				: loggedInEmployee.key(),
			    'type'				: form.cleaned_data['type'],
			    'amount'			: form.cleaned_data['amount'],
			    'dateOfExpense'		: form.cleaned_data['dateOfExpense'],
			    'comments'			: form.cleaned_data['comments']
			}
			newExpense = Expenses(**dictToSave)
			return self.respond(isSaved=True, savedExpenseKey=str(db.put(newExpense)))
		else:
			return self.respond(isSaved=False, errors=form.errors)
예제 #32
0
	def markDebtReturn(self, serializedFormValues):
		from tuition.tools.models import Expenses, Debt
		from tuition.tools.forms import DebtReturnForm
		from tuition.utils.manager import AppManager

		modelsToPut = []
		form = DebtReturnForm(data = serializedFormValues)
		loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
		debt = Debt.get(serializedFormValues['key'])
		form.debtIncurredDate = debt.incurredDate
		if form.is_valid() and not debt.hasReturned:
			dictToSave = {
			    'expenseOfMonth'	: form.cleaned_data['markAsExpense'],
			    'hasReturned'		: True
			}
			for key, value in dictToSave.iteritems():
				setattr(debt, key, value)
			modelsToPut.append(debt)
			# we need to mark it as an expense of the given date.
			dictToSave = {
			    'user' 				: loggedInEmployee.key(),
			    'type'				: 'Debt Return',
			    'amount'			: debt.amount,
			    'dateOfExpense'		: form.cleaned_data['markAsExpense'],
			    'comments'			: form.cleaned_data['returnComments']
			}
			expense = Expenses(**dictToSave)
			modelsToPut.append(expense)
			savedDebtKey, savedExpenseKey = db.put(modelsToPut)
			return self.respond(
				isSaved=True, 
				savedDebtKey=str(savedDebtKey),
				savedExpenseKey=str(savedExpenseKey), 
				savedDebt=debt.toDict
			)
		else:
			return self.respond(
				isSaved=False, 
				errors=form.errors, 
				debtAlreadyReturned=debt.hasReturned
			)
예제 #33
0
	def saveUser(self, serializedFormValues):
		from tuition.user.models import User
		from tuition.utils.manager import AppManager
		from tuition.user.forms import UserRegistrationForm

		isEdit = False
		loggedInEmployee = AppManager.getCurrentLoggedInUser()
		email = loggedInEmployee.email()
		form = UserRegistrationForm(data=serializedFormValues)
		if serializedFormValues.get('keyHidden'):
			isEdit = True
			loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
			form.loggedInEmployeeKey = str(loggedInEmployee.key())
			form.keyHidden = serializedFormValues.get('keyHidden')
			email = loggedInEmployee.email
		if form.is_valid():
			dictToSave = {
				'firstName' : form.cleaned_data['firstName'],
				'lastName' : form.cleaned_data['lastName'],
				'email' : email,
				'alternateEmail' : form.cleaned_data['alternateEmail'],
				'dob' : form.cleaned_data['dob'],
				'about' : form.cleaned_data['about']
			}
			if not isEdit:
				savedUser = User(**dictToSave)
			else:
				savedUser = User.get(serializedFormValues.get('keyHidden'))
				for key, value in dictToSave.iteritems():
					setattr(savedUser, key, value)
			return self.respond(
				isSaved=True, 
				isEdit=isEdit,
				savedUserKey=str(db.put(savedUser)), 
				savedValues=savedUser.toDict
			)
		else:
			return self.respond(
				isSaved=False, 
				errors=form.errors
			)
예제 #34
0
    def saveAnExpense(self, serializedFormValues):
        from tuition.utils.manager import AppManager
        from tuition.tools.forms import ExpenseForm
        from tuition.tools.models import Expenses

        form = ExpenseForm(data=serializedFormValues)
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        if form.is_valid():
            dictToSave = {
                'user': loggedInEmployee.key(),
                'type': form.cleaned_data['type'],
                'amount': form.cleaned_data['amount'],
                'dateOfExpense': form.cleaned_data['dateOfExpense'],
                'comments': form.cleaned_data['comments']
            }
            newExpense = Expenses(**dictToSave)
            return self.respond(isSaved=True,
                                savedExpenseKey=str(db.put(newExpense)))
        else:
            return self.respond(isSaved=False, errors=form.errors)
예제 #35
0
    def process_request(self, request):
        import logging
        from django import http
        from django.shortcuts import render_to_response
        from tuition.settings import SITE_DOWN_FOR_MAINTENANCE, SITE_DOWN_DESCRIPTION, SITE_SUPPORT_EMAIL
        from tuition.utils.manager import AppManager

        AppManager.setDomain(request.get_host())
        if AppManager.isCurrentUserAppAdmin():
            return None

        url = AppManager.isUserLoggedIn(request.path, request.path)
        if url:
            logging.info("User has not logged in through Google Accounts.")
            logging.info("Going to redirect user to %s." % url)
            return http.HttpResponseRedirect(url)

        user = AppManager.getCurrentLoggedInUser()
        if user:
            if SITE_DOWN_FOR_MAINTENANCE:
                return render_to_response(
                    "siteDown.html", {"description": SITE_DOWN_DESCRIPTION, "supportEmail": SITE_SUPPORT_EMAIL}
                )
            # implement any OAuth in future.
            if not AppManager.getUserByEmail(user.email()) and request.path not in SAFE_TO_REDIRECT_URI:
                logging.info("User has not registered yet.")
                logging.info("Going to redirect user to /register")
                return http.HttpResponseRedirect("/register?firstLogin=1")
            return None
        return None
예제 #36
0
def register(request):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from forms import UserRegistrationForm
    from tuition.utils.manager import AppManager
    from tuition.utils.utils import URLCreator
    from tuition.urlPatterns import UrlPattern
    from tuition.utils.utils import GooglePlusService

    queryString = int(request.GET.get('firstLogin', 0))
    loggedInEmployee = AppManager.getCurrentLoggedInUser()
    if not AppManager.isCurrentUserAppAdmin():
        if not queryString or AppManager.getUserByEmail(
                AppManager.getCurrentLoggedInUser().email()):
            raise Exception('Unauthorized Access')
    else:
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
    template_values = {
        'form': UserRegistrationForm(),
        'loggedInEmployee': loggedInEmployee,
        'queryString': queryString
    }
    return render_to_response('userRegistration.html',
                              template_values,
                              context_instance=RequestContext(request))
예제 #37
0
    def process_request(self, request):
        import logging
        from django import http
        from django.shortcuts import render_to_response
        from django.template import RequestContext
        from tuition.settings import SITE_DOWN_FOR_MAINTENANCE, SITE_DOWN_DESCRIPTION, SITE_SUPPORT_EMAIL
        from tuition.utils.manager import AppManager

        AppManager.setDomain(request.get_host())
        if AppManager.isCurrentUserAppAdmin():
            return None

        url = AppManager.isUserLoggedIn(request.path, request.path)
        if url:
            logging.info('User has not logged in.')
            logging.info('Going to redirect user to %s.' % url)
            return http.HttpResponseRedirect(url)

        user = AppManager.getCurrentLoggedInUser()
        if user:
            if SITE_DOWN_FOR_MAINTENANCE:
                return render_to_response(
                    'siteDown.html', 
                    {'description' : SITE_DOWN_DESCRIPTION}, 
                    context_instance=RequestContext(request)
                )
            # implement any OAuth in future.
            if not AppManager.getUserByEmail(user.email()) and request.path not in SAFE_TO_REDIRECT_URI:
                logging.info('User has not registered yet.')
                logging.info('Going to redirect user to /register')
                return http.HttpResponseRedirect('/register?firstLogin=1')
            return None
        return None
예제 #38
0
    def process_request(self, request):
        import logging
        from django import http
        from django.shortcuts import render_to_response
        from django.template import RequestContext
        from tuition.settings import SITE_DOWN_FOR_MAINTENANCE, SITE_DOWN_DESCRIPTION, SITE_SUPPORT_EMAIL
        from tuition.utils.manager import AppManager

        AppManager.setDomain(request.get_host())
        if AppManager.isCurrentUserAppAdmin():
            return None

        url = AppManager.isUserLoggedIn(request.path, request.path)
        if url:
            logging.info('User has not logged in.')
            logging.info('Going to redirect user to %s.' % url)
            return http.HttpResponseRedirect(url)

        user = AppManager.getCurrentLoggedInUser()
        if user:
            if SITE_DOWN_FOR_MAINTENANCE:
                return render_to_response(
                    'siteDown.html', {'description': SITE_DOWN_DESCRIPTION},
                    context_instance=RequestContext(request))
            # implement any OAuth in future.
            if not AppManager.getUserByEmail(
                    user.email()) and request.path not in SAFE_TO_REDIRECT_URI:
                logging.info('User has not registered yet.')
                logging.info('Going to redirect user to /register')
                return http.HttpResponseRedirect('/register?firstLogin=1')
            return None
        return None
예제 #39
0
    def getDebtThisMonth(self, values):
        import datetime
        from tuition.tools.models import Debt
        from tuition.utils.manager import AppManager
        from tuition.utils.utils import getMonthEnd

        serializedObjects = []
        year = int(values.get('year', 2013))
        month = int(values.get('month', datetime.date.today().month))
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        firstOfMonth = datetime.date(year, month, 1)
        endOfMonth = datetime.date(year, month, getMonthEnd(month, year))
        thisMonthDebts = Debt.all().filter(
            'user ='******'incurredDate >=',
                firstOfMonth).filter('incurredDate <=',
                                     endOfMonth).order('-incurredDate')
        thisMonthDebts = thisMonthDebts.fetch(limit=1000)
        for debt in thisMonthDebts:
            serializedObjects.append(debt.toDict)
        return self.respond(debts=serializedObjects)
예제 #40
0
def updateExpensesCreatedAndUpdatedOn(request):
	from tuition.tools.models import Expenses
	from tuition.utils.manager import AppManager
	from google.appengine.ext import db
	from django import http
	import datetime

	if not AppManager.isCurrentUserAppAdmin():
		raise Exception('Unauthorized Access')

	isOver = False
	pageNo = int(request.GET.get('pageNo', 0))
	expenses = Expenses.all().fetch(limit=60, offset=pageNo*60)
	if expenses:
		for expense in expenses:
			expense.createdOn = datetime.datetime.now()
			expense.updatedOn = datetime.datetime.now()
		db.put(expenses)
		pageNo += 1
	else:
		isOver = True

	content = """
		<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
			<html xmlns="http://www.w3.org/1999/xhtml">
				<head><title>Update Expenses</title></head>
				<body style="font-size: 18px;">
					<div style="text-align:center font-weight:bold">
						Number of records processed in this run : %d
						<form action="/updateExpensesCreatedAndUpdatedOn" method="GET">
							<input type="hidden" name="pageNo" value="%d" />
							<input type=submit value="Next"/>
						</form>
					</div>
				</body>
			</html>""" % (len(expenses), pageNo)
	if isOver:
		content = """
			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
				<html xmlns="http://www.w3.org/1999/xhtml">
				<head><title>Update Expenses</title></head>
				<body style="font-size: 18px;">
					<div style="text-align:center font-weight:bold">
						Updation Complete
					</div>
				</body>
				</html>
		"""
	response = http.HttpResponse()
	response.write(content)
	return response
예제 #41
0
    def markDebtReturn(self, serializedFormValues):
        from tuition.tools.models import Expenses, Debt
        from tuition.tools.forms import DebtReturnForm
        from tuition.utils.manager import AppManager

        modelsToPut = []
        form = DebtReturnForm(data=serializedFormValues)
        loggedInEmployee = AppManager.getUserByEmail(
            AppManager.getCurrentLoggedInUser().email())
        debt = Debt.get(serializedFormValues['key'])
        form.debtIncurredDate = debt.incurredDate
        if form.is_valid() and not debt.hasReturned:
            dictToSave = {
                'expenseOfMonth': form.cleaned_data['markAsExpense'],
                'hasReturned': True
            }
            for key, value in dictToSave.iteritems():
                setattr(debt, key, value)
            modelsToPut.append(debt)
            # we need to mark it as an expense of the given date.
            dictToSave = {
                'user': loggedInEmployee.key(),
                'type': 'Debt Return',
                'amount': debt.amount,
                'dateOfExpense': form.cleaned_data['markAsExpense'],
                'comments': form.cleaned_data['returnComments']
            }
            expense = Expenses(**dictToSave)
            modelsToPut.append(expense)
            savedDebtKey, savedExpenseKey = db.put(modelsToPut)
            return self.respond(isSaved=True,
                                savedDebtKey=str(savedDebtKey),
                                savedExpenseKey=str(savedExpenseKey),
                                savedDebt=debt.toDict)
        else:
            return self.respond(isSaved=False,
                                errors=form.errors,
                                debtAlreadyReturned=debt.hasReturned)
예제 #42
0
def viewUserExpenses(request, userKey=None):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from tuition.utils.manager import AppManager
    from models import Expenses
    from forms import ExpenseForm, ExpenseYearFilter
    from tuition.utils.appConstants import MONTH_NUM_FULL_NAME_DICT
    from tuition.utils.utils import ExportHandle, ExportClassHandle

    loggedInEmployee = AppManager.getUserByEmail(
        AppManager.getCurrentLoggedInUser().email())
    form = ExpenseForm(
        initial={'dateOfExpense': datetime.date.today().strftime('%d/%m/%Y')})
    template_values = {
        'loggedInEmployee': loggedInEmployee,
        'yearFilterForm': ExpenseYearFilter(),
        'monthNameDict': MONTH_NUM_FULL_NAME_DICT,
        'exportHandle': ExportHandle.asDict(),
        'classHandle': ExportClassHandle.asDict(),
        'form': form
    }
    return render_to_response('viewExpenses.html',
                              template_values,
                              context_instance=RequestContext(request))
예제 #43
0
    def saveUser(self, serializedFormValues):
        from tuition.user.models import User
        from tuition.utils.manager import AppManager
        from tuition.user.forms import UserRegistrationForm

        isEdit = False
        loggedInEmployee = AppManager.getCurrentLoggedInUser()
        email = loggedInEmployee.email()
        form = UserRegistrationForm(data=serializedFormValues)
        if serializedFormValues.get('keyHidden'):
            isEdit = True
            loggedInEmployee = AppManager.getUserByEmail(
                AppManager.getCurrentLoggedInUser().email())
            form.loggedInEmployeeKey = str(loggedInEmployee.key())
            form.keyHidden = serializedFormValues.get('keyHidden')
            email = loggedInEmployee.email
        if form.is_valid():
            dictToSave = {
                'firstName': form.cleaned_data['firstName'],
                'lastName': form.cleaned_data['lastName'],
                'email': email,
                'alternateEmail': form.cleaned_data['alternateEmail'],
                'dob': form.cleaned_data['dob'],
                'about': form.cleaned_data['about']
            }
            if not isEdit:
                savedUser = User(**dictToSave)
            else:
                savedUser = User.get(serializedFormValues.get('keyHidden'))
                for key, value in dictToSave.iteritems():
                    setattr(savedUser, key, value)
            return self.respond(isSaved=True,
                                isEdit=isEdit,
                                savedUserKey=str(db.put(savedUser)),
                                savedValues=savedUser.toDict)
        else:
            return self.respond(isSaved=False, errors=form.errors)
예제 #44
0
def profile(request):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from tuition.utils.utils import GooglePlusService
    from tuition.utils.manager import AppManager
    from forms import UserRegistrationForm

    user = AppManager.getCurrentLoggedInUser()
    loggedInEmployee = AppManager.getUserByEmail(user.email())
    loggedInEmployee.id = user.user_id()
    response = GooglePlusService(request=request, loggedInEmployee=loggedInEmployee).getUserInfo(setImageSize=250)
    if isinstance(response, dict):
        locationFromPlus = response.get("userInfo", {}).get("currentLocation", "")
        if not locationFromPlus:
            placesLived = response.get("userInfo", {}).get("placesLived", [])
            if placesLived and placesLived[0].get("primary"):
                locationFromPlus = placesLived[0].get("value")
        template_values = {
            "form": UserRegistrationForm(
                initial={
                    "firstName": loggedInEmployee.firstName,
                    "lastName": loggedInEmployee.lastName,
                    "alternateEmail": loggedInEmployee.alternateEmail,
                    "dob": loggedInEmployee.dob.strftime("%d/%m/%Y"),
                    "about": loggedInEmployee.about or "",
                }
            ),
            "loggedInEmployee": loggedInEmployee,
            "url": AppManager.createLogoutURL(),
            "homePage": "/",
            "supportEmail": SITE_SUPPORT_EMAIL,
            "publicProfile": response.get("userInfo", {}).get("url", "#"),
            "imageUrl": response.get("userInfo", {}).get("image", {}).get("url", "/images/emptyProfile.gif"),
            "locationFromPlus": locationFromPlus,
            "about": response.get("userInfo", {}).get("aboutMe", ""),
        }
        return render_to_response("userProfile.html", template_values)
    return response
def contextProcessor(request):
    import datetime
    from tuition.settings import SITE_SUPPORT_EMAIL
    from tuition.utils.utils import ExportHandle, ExportClassHandle
    from tuition.utils.manager import AppManager

    return {
        'url': AppManager.createLogoutURL(),
        'homePage': '/',
        'supportEmail': SITE_SUPPORT_EMAIL,
        'spreadSheetHandle': ExportHandle.SPREADSHEET,
        'expenseExportHandle': ExportClassHandle.EXPENSE,
        'debtExportHandle': ExportClassHandle.DEBT,
        'startOfMonth': datetime.date.today().replace(day=1)
    }
예제 #46
0
def register(request):
    from tuition.settings import SITE_SUPPORT_EMAIL
    from forms import UserRegistrationForm
    from tuition.utils.manager import AppManager
    from tuition.utils.utils import URLCreator
    from tuition.urlPatterns import UrlPattern
    from tuition.utils.utils import GooglePlusService

    queryString = int(request.GET.get("firstLogin", 0))
    loggedInEmployee = AppManager.getCurrentLoggedInUser()
    if not AppManager.isCurrentUserAppAdmin():
        if not queryString or AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email()):
            raise Exception("Unauthorized Access")
    else:
        loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
    template_values = {
        "form": UserRegistrationForm(),
        "loggedInEmployee": loggedInEmployee,
        "url": AppManager.createLogoutURL(),
        "homePage": "/",
        "supportEmail": SITE_SUPPORT_EMAIL,
        "queryString": queryString,
    }
    return render_to_response("userRegistration.html", template_values)
예제 #47
0
def register(request):
	from tuition.settings import SITE_SUPPORT_EMAIL
	from forms import UserRegistrationForm	
	from tuition.utils.manager import AppManager
	from tuition.utils.utils import URLCreator
	from tuition.urlPatterns import UrlPattern
	from tuition.utils.utils import GooglePlusService

	queryString = int(request.GET.get('firstLogin', 0))
	loggedInEmployee = AppManager.getCurrentLoggedInUser()
	if not AppManager.isCurrentUserAppAdmin():
		if not queryString or AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email()):
			raise Exception('Unauthorized Access')
	else:
		loggedInEmployee = AppManager.getUserByEmail(AppManager.getCurrentLoggedInUser().email())
	template_values = {
		'form' : UserRegistrationForm(),
		'loggedInEmployee' : loggedInEmployee,
		'queryString' : queryString
	}
	return render_to_response('userRegistration.html', template_values, context_instance=RequestContext(request))
예제 #48
0
def export(request):
    import datetime
    from tuition.settings import SITE_SUPPORT_EMAIL
    from tuition.utils.manager import AppManager
    from tuition.utils.utils import ExportSelector, EXPORT_HANDLE_LABELS, getMonthEnd

    serializedObjectList = []
    linkToFile = None
    fileName = None
    isSaved = False
    noData = True
    invalidHandle = True
    response = {}

    classHandle = request.GET.get('classHandle', None)
    exportHandle = request.GET.get('handle', None)
    exportDate = datetime.datetime.strptime(
        request.GET.get('date',
                        datetime.date.today().strftime('%d_%m_%Y')),
        '%d_%m_%Y')
    firstOfMonth = datetime.date(exportDate.year, exportDate.month, 1)
    endOfMonth = datetime.date(exportDate.year, exportDate.month,
                               getMonthEnd(exportDate.month, exportDate.year))
    loggedInEmployee = AppManager.getUserByEmail(
        AppManager.getCurrentLoggedInUser().email())

    classWrapper = ExportSelector.getClass(classHandle)
    dataList = classWrapper().getForPeriod(loggedInEmployee.key(),
                                           firstOfMonth, endOfMonth)
    if dataList:
        noData = False
        for data in dataList:
            serializedObjectList.append(data.toDict)
        exporterClass = ExportSelector.getHandle(exportHandle)
        if exporterClass:
            invalidHandle = False
            exporterInstance = exporterClass(
                serializedObjects=serializedObjectList,
                request=request,
                remove=[
                    'key', 'user', 'calendarReminderURL', 'createdOn',
                    'updatedOn'
                ],
                date=exportDate,
                namePrefix=classHandle)
            response = exporterInstance.upload()
    if isinstance(response, dict):
        isSaved = response.get('isSaved')
        linkToFile = response.get('fileResponse', {}).get('alternateLink')
        fileName = response.get('fileResponse', {}).get('title')
        template_values = {
            'isSaved': isSaved,
            'linkToFile': linkToFile,
            'fileName': fileName,
            'handle': EXPORT_HANDLE_LABELS.get(exportHandle, exportHandle),
            'classHandle': classHandle,
            'invalidHandle': invalidHandle,
            'noData': noData,
            'loggedInEmployee': loggedInEmployee
        }
        return render_to_response('exportFinish.html',
                                  template_values,
                                  context_instance=RequestContext(request))
    else:
        return response