def profile_employees(): from models.account import Account from helpers.account import AccountHelper title = g._t('employees') if app.access('profile', action='administer'): employees = AccountHelper.listAccounts() elif app.access('profile', action='list'): employees = AccountHelper.listActiveAccounts() else: employees = [g.account] return redirect(url_for('profile_view', account_id=urllib.quote_plus(str(g.account.id)))) return render_template('profile/employees.html', employees=employees, title=title)
def _activityHeader(**kwargs): from models.account import Account from models.project import Project, Component, Membership, Label from helpers.account import AccountHelper from helpers.project import ProjectHelper header = {} if kwargs.has_key('start_date'): header['start_date'] = kwargs['start_date'] else: header['start_date'] = request.values.get('start_date', g._constant()['DATE']['MONTH']) #start_date = datetime.datetime.strptime(start_datestring, '%Y-%m-%d') #start_ts = start_date.strftime('%s') if kwargs.has_key('end_date'): header['end_date'] = kwargs['end_date'] else: header['end_date'] = request.values.get('end_date', g._constant()['DATE']['TODAY']) #end_date = datetime.datetime.strptime(end_datestring, '%Y-%m-%d') #end_ts = end_date.strftime('%s') header['employees'] = [] if kwargs.has_key('employees'): header['employees'] = kwargs['employees'] elif app.access('profile', action='administer'): header['employees'] = AccountHelper.listAccounts() elif app.access('profile', action='list'): header['employees'] = AccountHelper.listActiveAccounts() elif app.access('profile', action='read', account=g.account): header['employees'] = [g.account] else: header['employees'] = [] header['skip_projects'] = ProjectHelper.listVacationProjects() header['projects'] = [] if kwargs.has_key('projects'): header['projects'] = kwargs['projects'] elif app.access('project', action='administer'): header['projects'] = ProjectHelper.listAllComponents() elif app.access('project', action='list'): header['projects'] = ProjectHelper.listAllActiveComponents() elif app.access('membership', account=g.account): header['projects'] = ProjectHelper.listAllComponentsForMember(account=g.account) else: header['projects'] = [] return header
def _get_chinese_cookie(): from helpers.account import AccountHelper if not hasattr(request, 'chinese_cookie'): cc = AccountHelper.getChineseCookie() setattr(request, 'chinese_cookie', cc) return getattr(request, 'chinese_cookie')
def application_translations(): from models.translation import Translation from helpers.account import AccountHelper language = AccountHelper.getPreference('language') data = dict([(translation.name, translation.value) for translation in Translation.query.filter_by(language=language).all()]) return Response(json.dumps({'status':200, 'description':'OK', 'data':data, 'errors':[]}), mimetype='application/json')
def profile_preferences(account_id): from models.account import Account, Preference from helpers.account import AccountHelper account_id = urllib.unquote_plus(account_id) account = Account.query.filter_by(id=account_id).first() if not account: abort(404) elif not app.access('profile', action='update', account=account): abort(403) preferences = { 'language': None, 'floats_format': None, 'report_time_format': None, 'show_deleted_reports': None, 'datepicker_multiple_days': None, 'show_chinese_cookie': None } for key in preferences.keys(): preference = Preference.query.filter_by(account_id=account.id, name=key).first() if not preference: preference = Preference() preference.account_id = account.id preference.name = key preference.value = AccountHelper.getPreference(key) preferences[key] = preference title = g._t('profile preferences') breadcrumbs = ( (((not app.access('authenticated', account=account)) and g._t('employees') or ''), url_for('profile_employees')), ((app.access('authenticated', account=account) and g._t('me') or account.__str__()), url_for('profile_view', account_id=account_id)), (title, "#") ) validationErrors = [] if request.method == 'POST' and request.form.get('csrf_token'): for key, preference in preferences.items(): preference.raw_value = request.form.get('preference_'+key, None) errors = preference.validate() validationErrors.extend(errors) if not errors: preference.save() if not validationErrors: flash( g._t('preference update success')) else: flash( g._t('preference update error'), 'error') return redirect(url_for('profile_preferences', account_id=urllib.quote_plus(account_id))) return render_template('profile/preferences.html', account_id=account_id, account=account, preferences=preferences, title=title, breadcrumbs=breadcrumbs, errors=validationErrors)
def _t(name, language=None, nodefault=False): from models.translation import Translation from helpers.account import AccountHelper if not language: language = AccountHelper.getPreference('language') translation = Translation.query.filter_by(name=name, language=language).first() if translation: return translation.value else: return (nodefault == False) and ':'+name or None
def session_preference(name, value): from helpers.account import AccountHelper import json value = urllib.unquote_plus(value) value = json.loads(value) AccountHelper.setPreference(name, value) if request.is_ajax: response = make_response(json.dumps({'status':200, 'description':'OK', 'errors':[]})) response.mimetype = 'application/json' else: if request.referrer and request.referrer != request.url: next = request.referrer else: next = url_for(app.config['HOME_PAGE']) response = make_response(redirect(next)) response.set_cookie(name, json.dumps(value)) return response
def project_members(project_id): from models.account import Account from models.project import Project, Component, Membership, Role from helpers.account import AccountHelper from helpers.project import ProjectHelper project_id = urllib.unquote_plus(project_id) project = Project.query.filter_by(id=project_id).first() if not project: abort(404) elif not app.access('project', action='update', project=project): abort(403) title = g._t('project members') breadcrumbs = ( (g._t('projects'), url_for('project_index')), (project.__str__(), url_for('project_view', project_id=urllib.quote_plus(str(project_id)))), (title, "#") ) if (request.form.get('method') == 'PUT' or request.method == 'PUT') and request.form.get('csrf_token'): submittedMembership = Membership.query.filter_by(project=project, id=request.form.get('membership_id')).first() if submittedMembership: submittedMembership.component = Component.query.filter_by(project=project, id=request.form.get('membership_component_id', None)).first() submittedMembership.account = Account.query.filter_by(id=request.form.get('membership_account_id', None)).first() submittedMembership.role = Role.query.filter_by(id=request.form.get('membership_role_id', None)).first() if not submittedMembership.validate(): submittedMembership.save() flash( g._t('membership update success')) return redirect(url_for('project_members', project_id=urllib.quote_plus(str(project_id)))) else: flash( g._t('membership not found'), 'error') elif (request.form.get('method') == 'DELETE' or request.method == 'DELETE') and request.form.get('csrf_token'): submittedMembership = Membership.query.filter_by(project=project, id=request.form.get('membership_id')).first() if submittedMembership: submittedMembership.delete() flash( g._t('membership delete success')) return redirect(url_for('project_members', project_id=urllib.quote_plus(str(project_id)))) else: flash( g._t('membership not found')) elif (request.form.get('method') == 'POST' or request.method == 'POST') and request.form.get('csrf_token'): submittedMembership = Membership() submittedMembership.project_id = project.id component = Component.query.filter_by(project=project, id=request.form.get('membership_component_id', None)).first() if component: submittedMembership.component_id = component.id account = submittedMembership.account_id = Account.query.filter_by(id=request.form.get('membership_account_id', None)).first() if account: submittedMembership.account_id = account.id role = Role.query.filter_by(id=request.form.get('membership_role_id', None)).first() if role: submittedMembership.role_id = role.id if not submittedMembership.validate(): submittedMembership.save() flash( g._t('membership create success')) return redirect(url_for('project_members', project_id=urllib.quote_plus(str(project_id)))) else: submittedMembership = Membership() if app.access('profile', action='administer'): accountList =AccountHelper.listAccounts() elif app.access('profile', action='list'): accountList = AccountHelper.listActiveAccounts() else: accountList = [g.account] if app.access('profile', action='administer'): componentList = ProjectHelper.listComponents(project=project) elif app.access('profile', action='list'): componentList = ProjectHelper.listActiveComponents(project=project) else: componentList = [ProjectHelper.getDefaultComponent(project=project)] roleList = ProjectHelper.listRoles() return render_template('project/members.html', project_id=project_id, project=project, accountList=accountList, roleList=roleList, roleDefault=ProjectHelper.getDefaultRole(), submittedMembership=submittedMembership, title=title, breadcrumbs=breadcrumbs)
def _isset_preference(name): from helpers.account import AccountHelper return AccountHelper.issetPreference(name) is not False
def _get_preference(name): from helpers.account import AccountHelper return AccountHelper.getPreference(name)
def profile_edit(account_id=None): from models.account import Account, Group from helpers.account import AccountHelper account = None if not account_id: if not app.access('profile', action='create'): abort(403) account = Account() account.status = Account.STATUS_ACTIVE account.group_id = Group.query.filter_by(alias=Group.GROUP_DEFAULT).first().id else: account_id = urllib.unquote_plus(account_id) account = Account.query.filter_by(id=account_id).first() if not account: abort(404) elif not app.access('profile', action='update', account=account): abort(403) print '[GROUP]',account.group_id, account.group validationErrors = [] if request.method == 'POST' and request.form.get('csrf_token', None): account.alias = request.values.get('account_alias', account.alias).strip() account.first_name = request.values.get('account_first_name', account.first_name).strip() account.last_name = request.values.get('account_last_name', account.last_name).strip() account.email = request.values.get('account_email', account.email).strip() account.info = request.values.get('account_info', account.info).strip() account_group_id = request.values.get('account_group_id', '').strip() account.status = int(request.form.get('account_status', account.status).strip()) account_group = None if account_group_id: account_group = Group.query.filter_by(id=account_group_id).first() if not account_group: account_group = Group.query.filter_by(alias=Group.GROUP_DEFAULT).first() account.group_id = account_group.id validationErrors = account.validate() if not validationErrors: account.save() flash(g._t('profile submit success')) if account_id: return redirect(url_for('profile_view', account_id=urllib.quote_plus(account_id))) else: return redirect(url_for('profile_employees')) if account_id: title = g._t('edit profile') else: title = g._t('new profile') if account_id: breadcrumbs = ( (((not app.access('authenticated', account=account)) and g._t('employees') or ''), url_for('profile_employees')), ((app.access('authenticated', account=account) and g._t('me') or account.__str__()), url_for('profile_view', account_id=account_id)), (title, "#") ) else: breadcrumbs = ( (g._t('employees'), url_for('profile_employees')), (title, "#") ) if app.access('profile', action='administer'): groupList = AccountHelper.listGroups() else: groupList = AccountHelper.listActiveGroups() return render_template('profile/edit.html', account_id=account_id, account=account, groupList=groupList, title=title, breadcrumbs=breadcrumbs, errors=validationErrors)