def journal_add_view(context, request): if IJournalEntry.providedBy(context): entry = context project = context.__parent__.__parent__ add_form = False else: entry = JournalEntry() project = context add_form = True errors = {} defaults = {} if 'form.submitted' in request.POST: try: # FormEncode validation defaults = dict(request.POST) defaults['indicators'] = request.POST.get('indicators') form_result = entry_schema.to_python(request.POST) except formencode.validators.Invalid, why: errors = why.error_dict else: session = DBSession() # Handle image upload if form_result['image'] is not None: entry.image = File('image.jpg', form_result['image'].read()) elif form_result['image_action'] == 'delete' and entry.image: session.delete(entry.image) entry.date = datetime.now() entry.text = form_result['text'] entry.user = authenticated_user(request) # Check whether indicator belongs to this project. indicator_query = session.query(Indicator) indicator_query = indicator_query.filter(Project.id == project.id) indicator_query = indicator_query.join(Project.objectives) indicator_query = indicator_query.join(Objective.competences) indicator_query = indicator_query.join(Competence.indicator_sets) indicator_query = indicator_query.join(IndicatorSet.indicators) if form_result['indicators']: indicator_query = indicator_query.filter( Indicator.id.in_(form_result['indicators'])) indicators = indicator_query.all() entry.indicators = indicators if add_form: project.journal_entries.append(entry) if ITeacher.providedBy(authenticated_user(request)): return HTTPFound(location=model_url( get_root(request)['projects'][project.id], request)) return HTTPFound( location=model_url(authenticated_user(request), request))
def journal_add_view(context, request): if IJournalEntry.providedBy(context): entry = context project = context.__parent__.__parent__ add_form = False else: entry = JournalEntry() project = context add_form = True errors = {} defaults = {} if 'form.submitted' in request.POST: try: # FormEncode validation defaults = dict(request.POST) defaults['indicators'] = request.POST.get('indicators') form_result = entry_schema.to_python(request.POST) except formencode.validators.Invalid, why: errors=why.error_dict else: session = DBSession() # Handle image upload if form_result['image'] is not None: entry.image = File('image.jpg', form_result['image'].read()) elif form_result['image_action'] == 'delete' and entry.image: session.delete(entry.image) entry.date = datetime.now() entry.text = form_result['text'] entry.user = authenticated_user(request) # Check whether indicator belongs to this project. indicator_query = session.query(Indicator) indicator_query = indicator_query.filter(Project.id == project.id) indicator_query = indicator_query.join(Project.objectives) indicator_query = indicator_query.join(Objective.competences) indicator_query = indicator_query.join(Competence.indicator_sets) indicator_query = indicator_query.join(IndicatorSet.indicators) if form_result['indicators']: indicator_query = indicator_query.filter(Indicator.id.in_(form_result['indicators'])) indicators = indicator_query.all() entry.indicators = indicators if add_form: project.journal_entries.append(entry) if ITeacher.providedBy(authenticated_user(request)): return HTTPFound(location = model_url(get_root(request)['projects'][project.id], request)) return HTTPFound(location = model_url(authenticated_user(request), request))
def entries(self): user = authenticated_user(self.request) entries = get_current_registry().getAdapters((user, self.request), IGlobalMenuEntry) entries = [ entry[1] for entry in entries ] entries = [ entry for entry in entries if entry.condition ] entries = sorted(entries, key=lambda entry: entry.weight) return entries
def entries(self): user = authenticated_user(self.request) entries = get_current_registry().getAdapters((user, self.request), IGlobalMenuEntry) entries = [entry[1] for entry in entries] entries = [entry for entry in entries if entry.condition] entries = sorted(entries, key=lambda entry: entry.weight) return entries
def application_view(context, request): user = authenticated_user(request) if user: if ITeacher.providedBy(user): return HTTPFound(location=model_url(context, request, "dashboard.html")) return HTTPFound(location=model_url(user, request)) return HTTPFound(location=model_url(context, request, "login.html"))
def application_view(context, request): user = authenticated_user(request) if user: if ITeacher.providedBy(user): return HTTPFound( location=model_url(context, request, 'dashboard.html')) return HTTPFound(location=model_url(user, request)) return HTTPFound(location=model_url(context, request, 'login.html'))
def logged_in_view(context, request): user = authenticated_user(request) # Direct to the url of the "home" menu item which is user type specific. home_entry = get_current_registry().queryMultiAdapter((user, request), IGlobalMenuEntry, name="home") if home_entry: return HTTPFound(location = home_entry.url) else: return HTTPFound(location = model_url(context, request, 'login.html', query={'login_failed' : '1'}))
def logged_in_view(context, request): user = authenticated_user(request) # Direct to the url of the "home" menu item which is user type specific. home_entry = get_current_registry().queryMultiAdapter((user, request), IGlobalMenuEntry, name="home") if home_entry: return HTTPFound(location=home_entry.url) else: return HTTPFound(location=model_url( context, request, 'login.html', query={'login_failed': '1'}))
def student_view(context, request): competence_cloud = student_competence_cloud_view(context, request) # Redirect if the student is accessed by a teacher (gives a nicer URL). if authenticated_user(request) != context: return HTTPFound(location = model_url(context, request, 'stats.html')) return dict(student=context, competence_cloud=competence_cloud, request=request, comments_view=comments_view, api=TemplateAPI(request))
def entries(self): context = self.context user = authenticated_user(self.request) entries = get_current_registry().getAdapters((context, user, self.request), ILocalMenuEntry) entries = [ entry[1] for entry in entries ] while not entries and context is not None: context = context.__parent__ entries = get_current_registry().getAdapters((context, user, self.request), ILocalMenuEntry) entries = [ entry[1] for entry in entries ] entries = [ entry for entry in entries if entry.condition ] entries = sorted(entries, key=lambda entry: entry.weight) return entries
def student_view(context, request): competence_cloud = student_competence_cloud_view(context, request) # Redirect if the student is accessed by a teacher (gives a nicer URL). if authenticated_user(request) != context: return HTTPFound(location=model_url(context, request, 'stats.html')) return dict(student=context, competence_cloud=competence_cloud, request=request, comments_view=comments_view, api=TemplateAPI(request))
def entries(self): context = self.context user = authenticated_user(self.request) entries = get_current_registry().getAdapters( (context, user, self.request), ILocalMenuEntry) entries = [entry[1] for entry in entries] while not entries and context is not None: context = context.__parent__ entries = get_current_registry().getAdapters( (context, user, self.request), ILocalMenuEntry) entries = [entry[1] for entry in entries] entries = [entry for entry in entries if entry.condition] entries = sorted(entries, key=lambda entry: entry.weight) return entries
def comments_add_view(context, request): journal_entry = context.__parent__ # Comment to add if request.POST.get('comment_text', None): comment = Comment() comment.journal_entry = journal_entry comment.user = authenticated_user(request) comment.text = request.POST['comment_text'] comment.date = datetime.datetime.now() html = comments_view(context, request) response = simplejson.dumps(dict(id=model_url(context, request), html=html)) return Response(response)
def project_edit_view(context, request): if IProject.providedBy(context): project = context context = project.__parent__ add_form = False else: project = Project() add_form = True errors = {} defaults = {} if 'form.submitted' in request.POST: try: # FormEncode validation defaults = dict(request.POST) form_result = project_schema.to_python(request.POST) except formencode.validators.Invalid, why: errors = why.error_dict else: # Apply schema fields to the project object changed = False for field_name in project_schema.fields.keys(): if form_result[field_name] != getattr(project, field_name): setattr(project, field_name, form_result[field_name]) changed = True # Add project if this is the add form if add_form: session = DBSession() # Add the teacher that created the project to the project. user = authenticated_user(request) if ITeacher.providedBy(user): project.teachers.append(user) session.add(project) return HTTPFound(location=model_url(context, request))
def project_edit_view(context, request): if IProject.providedBy(context): project = context context = project.__parent__ add_form = False else: project = Project() add_form = True errors = {} defaults = {} if 'form.submitted' in request.POST: try: # FormEncode validation defaults = dict(request.POST) form_result = project_schema.to_python(request.POST) except formencode.validators.Invalid, why: errors=why.error_dict else: # Apply schema fields to the project object changed = False for field_name in project_schema.fields.keys(): if form_result[field_name] != getattr(project, field_name): setattr(project, field_name, form_result[field_name]) changed = True # Add project if this is the add form if add_form: session = DBSession() # Add the teacher that created the project to the project. user = authenticated_user(request) if ITeacher.providedBy(user): project.teachers.append(user) session.add(project) return HTTPFound(location = model_url(context, request))
def authenticated_user(self): return authenticated_user(self.request)
indicator_query = indicator_query.join(Competence.indicator_sets) indicator_query = indicator_query.join(IndicatorSet.indicators) if form_result['indicators']: indicator_query = indicator_query.filter(Indicator.id.in_(form_result['indicators'])) indicators = indicator_query.all() entry.indicators = indicators if add_form: project.journal_entries.append(entry) if ITeacher.providedBy(authenticated_user(request)): return HTTPFound(location = model_url(get_root(request)['projects'][project.id], request)) return HTTPFound(location = model_url(authenticated_user(request), request)) elif 'form.cancel' in request.POST: if ITeacher.providedBy(authenticated_user(request)): return HTTPFound(location = model_url(get_root(request)['projects'][project.id], request)) return HTTPFound(location = model_url(authenticated_user(request), request)) else: if not add_form: for field_name in entry_schema.fields.keys(): if hasattr(entry, field_name): defaults[field_name] = getattr(entry, field_name) defaults['indicators'] = [indicator.id for indicator in entry.indicators] if entry.image: defaults['image_action'] = 'nochange' defaults['image'] = '' session = DBSession()
indicator_query = indicator_query.filter( Indicator.id.in_(form_result['indicators'])) indicators = indicator_query.all() entry.indicators = indicators if add_form: project.journal_entries.append(entry) if ITeacher.providedBy(authenticated_user(request)): return HTTPFound(location=model_url( get_root(request)['projects'][project.id], request)) return HTTPFound( location=model_url(authenticated_user(request), request)) elif 'form.cancel' in request.POST: if ITeacher.providedBy(authenticated_user(request)): return HTTPFound(location=model_url( get_root(request)['projects'][project.id], request)) return HTTPFound( location=model_url(authenticated_user(request), request)) else: if not add_form: for field_name in entry_schema.fields.keys(): if hasattr(entry, field_name): defaults[field_name] = getattr(entry, field_name) defaults['indicators'] = [ indicator.id for indicator in entry.indicators ] if entry.image: