Spaces:
Running
Running
File size: 1,340 Bytes
6954bf4 428a607 6954bf4 428a607 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
import arrow
from flask_login import UserMixin
from firebase_config import firebase_db
from firebase_admin import firestore
class User(UserMixin):
def __init__(self, id=None, nama=None, email=None, role=None, registered_at=None, inactive=None):
self.id = id
self.nama = nama
self.email = email
self.role = role
self.registered_at = registered_at
self.inactive = inactive
def update(self):
firebase_db.collection('users').document(self.id).update({
'inactive': self.inactive,
})
return self
@staticmethod
def fetch():
users = firebase_db.collection('users').where('role', '==', 'pengguna').order_by("registered_at", direction=firestore.Query.DESCENDING).stream()
datas = []
for user in users:
data = user.to_dict()
datas.append({
'id': user.id,
'nama': data['nama'],
'email': data['email'],
'role': data['role'],
'inactive': data['inactive'],
'registered_at': arrow.get(data['registered_at']).to('Asia/Jakarta').format('dddd, DD-MM-YYYY HH:mm:ss', locale='id_ID'),
'status_badge': 'danger' if data['inactive'] == "1" else 'success'
})
return datas |