def test_data_delete(): from models.account import Account from models.project import Project from models.report import Report from models.variable import Variable roles = { 'administrator':[], 'privileged_manager':[], 'manager':[], 'privileged_member':[], 'member':[], } rolesVariable = Variable.query.filter_by(name='roles', scope='permissions').first() roles.update(rolesVariable.value or {}) for account in [account for account in Account.all() if account.id.startswith('test.')]: for role_id, members in roles.items(): if account.id in members: roles[role_id].remove(account.id) Account.delete(account.id) flash('account deleted: '+str(account)) rolesVariable.value = roles rolesVariable.save() for project in [project for project in Project.all() if project.id.startswith('TEST/')]: Project.delete(project.id) flash('project deleted: '+str(project)) return redirect(url_for('test_data_index'))
def test_data_projects(): from models.account import Account from models.project import Project title = 'Testing | Data | Listed per-account-project membership' employees = [account for account in Account.all() if account.id.startswith('test.')] projects = [project for project in Project.all() if project.id.startswith('TEST/')] data = _test_data_menu() data = data + '<table class="table" width="100%">' roles = g._var(name='roles', scope='permissions', default={}).keys() data = data + '<tr>' data = data + '<th> </th>' for project in projects: data = data + '<th>'+project.id+'</th>' data = data + '</tr>' for employee in employees: data = data + '<tr>' data = data + '<th>'+employee.id+'</th>' for project in projects: #data = data + (project.hasMember(employee.id) and '<td class="alert alert-success">'+project.members.get(employee.id, '---')+'</td>' or '<td class="alert alert-danger">no</td>') details = {} details['class'] = project.hasMember(employee.id) and 'success' or 'danger' details['label'] = project.hasMember(employee.id) and project.members.get(employee.id, '?') or '-' details['label'] = details['label'] + '<div class="pull-right">' details['label'] = details['label'] + (app.access('project', action='read', project=project, account=employee) and '<i class="icon icon-eye-open text-info"></i> | ' or '<i style="opacity:0.2" class="icon icon-eye-open muted"></i> | ') details['label'] = details['label'] + (app.access('project', action='update', project=project, account=employee) and '<i class="icon icon-edit text-info"></i> | ' or '<i style="opacity:0.2" class="icon icon-edit muted"></i> | ') details['label'] = details['label'] + (app.access('project', action='delete', project=project, account=employee) and '<i class="icon icon-trash text-info"></i>' or '<i style="opacity:0.2" class="icon icon-trash muted"></i>') details['label'] = details['label'] + '</div>' data = data + '<td class="alert alert-'+details['class']+'">'+details['label']+'</td>' data = data + '</tr>' data = data + '</table>' data = Markup(data) return render_template('test/index.html', title=title, data=data)
def list(): projects = Project.all() return json.dumps([ project.to_dict() for project in projects ])
def get(self): projects = Project.all() self.response.out.write(simplejson.dumps([m.to_dict() for m in projects]))