Example #1
0
def new_task():
	form = AnnouncementForm()
	if form.validate_on_submit():
		task = Task(title = form.title.data, content = form.content.data, author = current_user)
		db.session.add(poll)
		db.session.commit()
		flash('A new task has been created', 'success')
		return redirect(url_for('main'))
	return render_template('new_task.html', title='New task', form = form, legend = 'New Task')
Example #2
0
def new_announcement():
	form = AnnouncementForm()
	if form.validate_on_submit():
		announcement = Announcement(title = form.title.data, content = form.content.data, author = current_user)
		db.session.add(announcement)
		db.session.commit()
		flash('Your accoucement has been created', 'success')
		return redirect(url_for('main'))
	return render_template('new_announcement.html', title='New accouncement', form = form, legend = 'New Announcement')
Example #3
0
def update_announcement(announcement_id):
	announcement = Announcement.query.get_or_404(announcement_id)
	if announcement.author != current_user:
		abort(403)
	form = AnnouncementForm()
	if form.validate_on_submit():
		announcement.title = form.title.data
		announcement.content = form.content.data
		db.session.commit()
		flash('Your post has been updated!', 'success')
		return redirect(url_for('announcement',announcement_id = announcement.id))
	elif request.method == 'GET':
		form.title.data = announcement.title
		form.content.data = announcement.content
	return render_template('new_announcement.html', title= 'Update Annoucnement' , 
								form = form, legend = 'Update Annoucnement')
Example #4
0
def update_announcement(announcement_id):
    announcement = Announcement.query.get_or_404(announcement_id)
    if announcement.author != current_user:
        abort(403)
    form = AnnouncementForm()
    form.audience.choices = audience_groups
    if form.validate_on_submit():
        announcement.title = form.title.data
        announcement.content = form.content.data
        db.session.commit()
        audi_groups = form.audience.data
        ann_id = announcement_id
        # first we remove this announcements from all original audience
        ann_rec = db.session.query(Announcement_recipient).filter(
            Announcement_recipient.announcement_id == announcement_id).filter(
                Announcement_recipient.recipient != current_user.id).all()
        for p in ann_rec:
            db.session.delete(p)
        db.session.commit()
        # loop over different scenarios
        if ('All' in audi_groups) or ('Managers' in audi_groups
                                      and 'Employees' in audi_groups):
            all_users = User.query.all()
            for user in all_users:
                try:
                    announcement_rec = Announcement_recipient(
                        announcement_id=ann_id, recipient=user.id, read=0)
                    db.session.add(announcement_rec)
                    db.session.commit()
                except exc.IntegrityError as e:
                    db.session.rollback()

            db.session.commit()

        else:
            if 'Managers' in audi_groups:
                managers = User.query.filter(User.is_manager)
                for man in managers:
                    try:
                        announcement_rec = Announcement_recipient(
                            announcement_id=ann_id, recipient=man.id, read=0)
                        db.session.add(announcement_rec)
                        db.session.commit()
                    except exc.IntegrityError as e:
                        db.session.rollback()
            if 'Employees' in audi_groups:
                employees = User.query.filter(User.is_manager == False)
                for emp in employees:
                    try:
                        announcement_rec = Announcement_recipient(
                            announcement_id=ann_id, recipient=emp.id, read=0)
                        db.session.add(announcement_rec)
                        db.session.commit()
                    except exc.IntegrityError as e:
                        db.session.rollback()
            for dept in departments:
                dept_members = User.query.filter(User.dept == dept)
                for mem in dept_members:
                    try:
                        announcement_rec = Announcement_recipient(
                            announcement_id=ann_id, recipient=mem.id, read=0)
                        db.session.add(announcement_rec)
                        db.session.commit()
                    except exc.IntegrityError as e:
                        db.session.rollback()

        flash('Your post has been updated!', 'success')
        return redirect(
            url_for('announcement', announcement_id=announcement.id))
    elif request.method == 'GET':
        form.title.data = announcement.title
        form.content.data = announcement.content
        form.audience.choices = audience_groups
    return render_template('new_announcement.html',
                           title='Update Announcement',
                           form=form,
                           legend='Update Announcement')
Example #5
0
def new_announcement():
    form = AnnouncementForm()
    form.audience.choices = audience_groups
    if form.validate_on_submit():
        announcement = Announcement(title=form.title.data,
                                    content=form.content.data,
                                    author=current_user)
        db.session.add(announcement)
        db.session.commit()
        ann_id = db.session.query(Announcement).order_by(
            Announcement.id.desc()).first().id
        audi_groups = form.audience.data
        announcement_rec = Announcement_recipient(announcement_id=ann_id,
                                                  recipient=current_user.id,
                                                  read=1)
        db.session.add(announcement_rec)
        db.session.commit()

        # loop over different scenarios
        if ('All' in audi_groups) or ('Managers' in audi_groups
                                      and 'Employees' in audi_groups):
            all_users = User.query.all()
            for user in all_users:
                try:
                    announcement_rec = Announcement_recipient(
                        announcement_id=ann_id, recipient=user.id, read=0)
                    db.session.add(announcement_rec)
                    db.session.commit()
                except exc.IntegrityError as e:
                    db.session.rollback()

            db.session.commit()

        else:
            if 'Managers' in audi_groups:
                managers = User.query.filter(User.is_manager)
                for man in managers:
                    try:
                        announcement_rec = Announcement_recipient(
                            announcement_id=ann_id, recipient=man.id, read=0)
                        db.session.add(announcement_rec)
                        db.session.commit()
                    except exc.IntegrityError as e:
                        db.session.rollback()
            if 'Employees' in audi_groups:
                employees = User.query.filter(User.is_manager == False)
                for emp in employees:
                    try:
                        announcement_rec = Announcement_recipient(
                            announcement_id=ann_id, recipient=emp.id, read=0)
                        db.session.add(announcement_rec)
                        db.session.commit()
                    except exc.IntegrityError as e:
                        db.session.rollback()
            for dept in departments:
                dept_members = User.query.filter(User.dept == dept)
                for mem in dept_members:
                    try:
                        announcement_rec = Announcement_recipient(
                            announcement_id=ann_id, recipient=mem.id, read=0)
                        db.session.add(announcement_rec)
                        db.session.commit()
                    except exc.IntegrityError as e:
                        db.session.rollback()

        flash('Your annoucement has been created', 'success')
        return redirect(url_for('main'))
    return render_template('new_announcement.html',
                           title='New accouncement',
                           form=form,
                           legend='New Announcement')