Exemple #1
0
    def remove_artist(self, proj, category_id, user_id):
        """Remove an artist from a category"""
        session = session_get()
        user = tmpl_context.user
        project = project_get(proj)
        category = category_get(category_id)
        remuser = user_get(user_id)
        updates = []

        if remuser in project.artists[category]:
            query = session.query(Artist).filter_by(proj_id=project.id)
            query = query.filter_by(category_id=category.id)
            query = query.filter_by(user_id=remuser.user_id)
            artist = query.one()
            session.delete(artist)

            # prepare updates to notify clients
            updates.append(dict(item=remuser, type='deleted',
                        topic=TOPIC_PROJECT_ARTISTS,
                        filter='%s-%s' % (project.id, category.id)))

            # log into Journal
            msg = '%s %s %s/%s' % (remuser.user_id,
                                   _('revoked as artist from:'),
                                   project.id, category.id)
            journal.add(user, msg)
            notify.send(updates)

            return dict(msg=msg, status='ok', updates=updates)

        return dict(msg='%s %s %s' % (
                remuser.user_id, _('is not an artist for:'), project.id),
                status='error', updates=[])
Exemple #2
0
def project_set_active(func, *args, **kwargs):
    """Extract the current project id from the args passed to the function
    and puts the corresponding project in the template context.
    
    If the project id is not valid raise an error."""
    if 'proj' in kwargs:
        proj = kwargs['proj']
    elif len(args)>1:
        proj = args[1]
    else:
        raise SPAMError('No project defined')

    tmpl_context.project = project_get(proj)
    return func(*args, **kwargs)
Exemple #3
0
 def _before(self, *args, **kw):
     proj = request.url.split('/')[-3]
     tmpl_context.project = project_get(proj)
Exemple #4
0
 def scenes(self, proj):
     project = project_get(proj)
     tmpl_context.t_scenes = t_scenes
     return dict(scenes=project.scenes)