def define_fields(self) -> None: """ Set form fields to values from request. """ if blueprints.get_value(self.prefix + 'FilterReset', bool, False): for field in self: if field.name != 'csrf_token': if type(field) is StringField or type( field) is BooleanField: field.data = None blueprints.set_value(self.prefix + field.label.text, None) elif type(field) is SelectField: field.data = field.choices[0][0] blueprints.set_value(self.prefix + field.label.text, field.choices[0][0]) else: for field in self: if field.name != 'csrf_token': data = field.data if type(field) is StringField: field.data = \ blueprints.get_value(self.prefix + field.label.text, str, None) elif type(field) is SelectField: field.data = \ blueprints.get_value( self.prefix + field.label.text, str, field.choices[0][0] \ if field.choices[0][0] != '' else None ) elif type(field) is BooleanField: field.data = \ blueprints.get_value(self.prefix + field.label.text, bool, False)
def __init__(self, prefix: str, endpoint: str, entity_count: int, default_per_page: int = 12) -> "Pagination": """ Initiate pagination object with values. """ super().__init__() self.endpoint = endpoint self.entity_count = entity_count # Set prefix value names self.prefixed_page_index = '%sPageIndex' % prefix self.prefixed_per_page = '%sPerPage' % prefix # Get page_index and per_page from request self.page_index = blueprints.get_value(self.prefixed_page_index, int, 1) self.per_page = blueprints.get_value(self.prefixed_per_page, int, default_per_page) # Calculate page_count self.page_count = int(math.modf(entity_count / self.per_page)[1]) if self.page_count < self.entity_count / self.per_page: self.page_count = self.page_count + 1 # Check page_index and per_page validity if self.page_index < 1: self.page_index = 1 elif self.page_index > self.page_count: self.page_index = self.page_count if self.per_page < 1: self.per_page = 1 # Store arguments in session blueprints.set_value(self.prefixed_page_index, self.page_index) blueprints.set_value(self.prefixed_per_page, self.per_page)
def __init__(self) -> "PollHistoryFilter": """ Initiate object with values from request. """ super(PollHistoryFilter, self).__init__('pollHistoryFilter') if request.method == 'GET': self.username.data = blueprints.get_value(self.username.label.text, str, None) self.title.data = blueprints.get_value(self.title.label.text, str, None) self.event.data = blueprints.get_value(self.event.label.text, str, None) elif request.method == 'POST': blueprints.set_value(self.username.label.text, self.username.data) blueprints.set_value(self.title.label.text, self.title.data) blueprints.set_value(self.event.label.text, self.event.data) self.form_valid = True
def __init__(self, name: str, endpoint: str, **kwargs) -> "Pagination": """ Initiate pagination object with values. """ # Apply pagination naming self.name = name self.name_page_index = '%sPageIndex' % name self.name_per_page = '%sPerPage' % name # Get page_index and per_page from request self.page_index = blueprints.get_value( self.name_page_index, int, 1) self.per_page = blueprints.get_value( self.name_per_page, int, DEFAULT_PER_PAGE) self.endpoint = endpoint self.kwargs = kwargs
def get_playlist(): """ Return playlist page. """ if not current_user.is_authenticated: return redirect(url_for('base.get_home')) # Handle reorderedList if request.json is not None and request.json.get('reorderedList'): order_utc = datetime.utcnow() for uid in request.json.get('reorderedList'): SoundfileStore.reorder(uid, order_utc) order_utc = order_utc - timedelta(microseconds=1) return redirect(url_for('playlist.get_playlist')) # Handle uidList (load data to avatar) if request.json is not None and request.json.get('uidList'): avatar_list = AvatarStore.read_list(None, 1, current_user.user.id, None, None) if len(avatar_list) > 0: avatar = avatar_list[0] sid_data = json.loads(avatar.sid_data) cleared_sid_list = [] for uid in request.json['uidList']: soundfile = SoundfileStore.read(uid) for sid in sid_data['sid_list']: if sid not in cleared_sid_list: cleared_sid_list += [sid] blueprints.socketio.emit( 'clear_data', {}, room=sid, callback=blueprints.socketio_status) blueprints.socketio.emit( 'load_data', { 'uid': uid, 'image': { 'src': url_for('gallery.get_image', filename=soundfile.render) }, 'audio': { 'src': url_for('gallery.get_audio', filename=soundfile.filename), 'type': soundfile.filetype }, 'user': '******'.join([ current_user.user.first_name, current_user.user.last_name ]) if blueprints.socketio_authenticated() else '' }, room=sid, callback=blueprints.socketio_status) return redirect(url_for('playlist.get_playlist')) # Handle uidPlay (play data to avatar) if request.json is not None and request.json.get('uidPlay'): avatar_list = AvatarStore.read_list(None, 1, current_user.user.id, None, None) if len(avatar_list) > 0: avatar = avatar_list[0] sid_data = json.loads(avatar.sid_data) uid = request.json.get('uidPlay') soundfile = SoundfileStore.read(uid) for sid in sid_data['sid_list']: blueprints.socketio.emit('play_data', { 'uid': uid, 'image': { 'src': url_for('gallery.get_image', filename=soundfile.render) }, 'audio': { 'src': url_for('gallery.get_audio', filename=soundfile.filename), 'type': soundfile.filetype }, 'user': '******'.join([ current_user.user.first_name, current_user.user.last_name ]) if blueprints.socketio_authenticated() else '' }, room=sid, callback=blueprints.socketio_status) return {'ok': True} # Prepare list data soundfile_list = SoundfileStore.read_list(0, None, None, None, True) return render_template('playlist/playlist.html', soundfile_list=soundfile_list, mobile=blueprints.get_value('mobile', bool, False))