Exemplo n.º 1
0
    def index_view(self):
        # Grab parameters from URL
        page, sort_idx, sort_desc, search = self._get_list_extra_args()

        page_size = 10
        count = User._get_collection().count()
        num_pages = count // page_size
        if count % page_size != 0:
            num_pages += 1

        # data = User._get_collection().find({}, {'password': 0}).skip(page*page_size).limit(page_size)
        data = User._get_collection().find({}, {'password': 0})
        result = []
        for d in data:
            temp_dict = {}
            temp_dict['username'] = d['username']
            temp_dict['last_login'] = d.get('last_login', None)
            temp_dict['used_tags'] = []
            temp_dict['tags_count'] = 0
            temp_dict['shreds_count'] = 0
            temp_dict['skipped_count'] = 0

            shreds = Shreds._get_collection().find({"tags.user": str(d["_id"])})
            for s in shreds:
                for tag in s['tags']:
                    if tag['user'] == str(d["_id"]):
                        if tag['tags'] == 'skipped':
                            temp_dict['skipped_count'] += 1
                        else:
                            temp_dict['shreds_count'] += 1
                            temp_dict['used_tags'] += tag['tags']
                            temp_dict['tags_count'] += len(tag['tags'])

            temp_dict['used_tags'] = list(set(temp_dict['used_tags']))
            result.append(temp_dict)
        # Various URL generation helpers
        def pager_url(p):
            # Do not add page number if it is first page
            if p == 0:
                p = None

            return self._get_url('.index_view', p, sort_idx, sort_desc,
                                 search)

        def sort_url(column, invert=False):
            desc = None

            if invert and not sort_desc:
                desc = 1

            return self._get_url('.index_view', page, column, desc,
                                 search)

        return self.render('admin/users.html', data=result, count=count,
                               pager_url=pager_url,
                               num_pages=num_pages,
                               page=page,
                               list_columns=self.column_labels,
                               sort_url=sort_url,
                               get_value=self.get_list_value)
Exemplo n.º 2
0
def login_view():
    form = LoginForm(request.form)
    if request.method == 'POST' and form.validate():
        user = form.get_user()
        login.login_user(user)
        session['org']=user.org
        session['su']=user.is_superuser
        session['email'] = user.email
        session['roles'] = user.roles
#        print session['su']
#===============================================================
        collection = User._get_collection()
        collection.update({"user.first_name":form.username.data}, { '$set': { 'last_login': datetime.now() }})
#===============================================================
#        print session['org']
        flash("Logged in successfully!", category='success')
        return redirect(url_for('index'))
    return render_template('login.html', title='login', form=form)
Exemplo n.º 3
0
def login_view():
    form = LoginForm(request.form)
    if request.method == 'POST' and form.validate():
        user = form.get_user()
        login.login_user(user)
        session['org'] = user.org
        session['su'] = user.is_superuser
        session['email'] = user.email
        session['roles'] = user.roles
        #        print session['su']
        #===============================================================
        collection = User._get_collection()
        collection.update({"user.first_name": form.username.data},
                          {'$set': {
                              'last_login': datetime.now()
                          }})
        #===============================================================
        #        print session['org']
        flash("Logged in successfully!", category='success')
        return redirect(url_for('index'))
    return render_template('login.html', title='login', form=form)
Exemplo n.º 4
0
app.config.from_object('settings')

try:
    app.config.from_object('local_settings')
except ImportError:
    pass

assets_init(app)
admin_init(app)

db = MongoEngine(app)

init_social_login(app, db)

shreds = Shreds._get_collection()
users = User._get_collection()


def get_next_shred():
    shred = shreds.find_one(
        {"$query": {"usersProcessed": {"$ne": str(g.user.id)},
                    "usersSkipped": {"$ne": str(g.user.id)},
                    "usersCount": {"$lte": app.config["USERS_PER_SHRED"]}
                    }}, sort=[("batch", 1),
                              ("usersCount", 1)])

    if shred:
        return shred

    shred = shreds.find_one(
        {"$query": {"usersSkipped": str(g.user.id),
Exemplo n.º 5
0
    def index_view(self):
        # Grab parameters from URL
        page, sort_idx, sort_desc, search = self._get_list_extra_args()

        page_size = 10
        count = User._get_collection().count()
        num_pages = count // page_size
        if count % page_size != 0:
            num_pages += 1

        # data = User._get_collection().find({}, {'password': 0}).skip(page*page_size).limit(page_size)
        data = User._get_collection().find({}, {'password': 0})
        result = []
        for d in data:
            temp_dict = {}
            temp_dict['username'] = d['username']
            temp_dict['last_login'] = d.get('last_login', None)
            temp_dict['used_tags'] = []
            temp_dict['tags_count'] = 0
            temp_dict['shreds_count'] = 0
            temp_dict['skipped_count'] = 0

            shreds = Shreds._get_collection().find(
                {"tags.user": str(d["_id"])})
            for s in shreds:
                for tag in s['tags']:
                    if tag['user'] == str(d["_id"]):
                        if tag['tags'] == 'skipped':
                            temp_dict['skipped_count'] += 1
                        else:
                            temp_dict['shreds_count'] += 1
                            temp_dict['used_tags'] += tag['tags']
                            temp_dict['tags_count'] += len(tag['tags'])

            temp_dict['used_tags'] = list(set(temp_dict['used_tags']))
            result.append(temp_dict)
        # Various URL generation helpers
        def pager_url(p):
            # Do not add page number if it is first page
            if p == 0:
                p = None

            return self._get_url('.index_view', p, sort_idx, sort_desc, search)

        def sort_url(column, invert=False):
            desc = None

            if invert and not sort_desc:
                desc = 1

            return self._get_url('.index_view', page, column, desc, search)

        return self.render('admin/users.html',
                           data=result,
                           count=count,
                           pager_url=pager_url,
                           num_pages=num_pages,
                           page=page,
                           list_columns=self.column_labels,
                           sort_url=sort_url,
                           get_value=self.get_list_value)
Exemplo n.º 6
0
app.config.from_object('settings')

try:
    app.config.from_object('local_settings')
except ImportError:
    pass

assets_init(app)
admin_init(app)

db = MongoEngine(app)

init_social_login(app, db)

shreds = Shreds._get_collection()
users = User._get_collection()


def get_next_shred():
    shred = shreds.find_one(
        {
            "$query": {
                "usersProcessed": {
                    "$ne": str(g.user.id)
                },
                "usersSkipped": {
                    "$ne": str(g.user.id)
                },
                "usersCount": {
                    "$lte": app.config["USERS_PER_SHRED"]
                }