def do_increment_logging_stat(zerver_object: Union[Realm, UserProfile, Stream], stat: CountStat, subgroup: Optional[Union[str, int, bool]], event_time: datetime, increment: int = 1) -> None: table = stat.data_collector.output_table if table == RealmCount: id_args = {'realm': zerver_object} elif table == UserCount: id_args = {'realm': zerver_object.realm, 'user': zerver_object} else: # StreamCount id_args = {'realm': zerver_object.realm, 'stream': zerver_object} if stat.frequency == CountStat.DAY: end_time = ceiling_to_day(event_time) else: # CountStat.HOUR: end_time = ceiling_to_hour(event_time) row, created = table.objects.get_or_create(property=stat.property, subgroup=subgroup, end_time=end_time, defaults={'value': increment}, **id_args) if not created: row.value = F('value') + increment row.save(update_fields=['value'])
def setUp(self) -> None: self.realm = get_realm('zulip') self.user = self.example_user('hamlet') self.login(self.user.email) self.end_times_hour = [ceiling_to_hour(self.realm.date_created) + timedelta(hours=i) for i in range(4)] self.end_times_day = [ceiling_to_day(self.realm.date_created) + timedelta(days=i) for i in range(4)]
def setUp(self) -> None: self.realm = get_realm('zulip') self.user = self.example_user('hamlet') self.login(self.user.email) self.end_times_hour = [ceiling_to_hour(self.realm.date_created) + timedelta(hours=i) for i in range(4)] self.end_times_day = [ceiling_to_day(self.realm.date_created) + timedelta(days=i) for i in range(4)]
def setUp(self): # type: () -> None self.realm = get_realm('zulip') self.user = get_user_profile_by_email('*****@*****.**') self.login(self.user.email) self.end_times_hour = [ceiling_to_hour(self.realm.date_created) + timedelta(hours=i) for i in range(4)] self.end_times_day = [ceiling_to_day(self.realm.date_created) + timedelta(days=i) for i in range(4)]
def setUp(self): # type: () -> None self.realm = get_realm('zulip') self.user = get_user_profile_by_email('*****@*****.**') self.login(self.user.email) self.end_times_hour = [ceiling_to_hour(self.realm.date_created) + timedelta(hours=i) for i in range(4)] self.end_times_day = [ceiling_to_day(self.realm.date_created) + timedelta(days=i) for i in range(4)]
def setUp(self) -> None: super().setUp() self.realm = get_realm("zulip") self.user = self.example_user("hamlet") self.login_user(self.user) self.end_times_hour = [ ceiling_to_hour(self.realm.date_created) + timedelta(hours=i) for i in range(4) ] self.end_times_day = [ ceiling_to_day(self.realm.date_created) + timedelta(days=i) for i in range(4) ]
def do_increment_logging_stat(zerver_object, stat, subgroup, event_time, increment=1): # type: (Union[Realm, UserProfile, Stream], CountStat, Optional[Union[str, int, bool]], datetime, int) -> None table = stat.zerver_count_query.analytics_table if table == RealmCount: id_args = {'realm': zerver_object} elif table == UserCount: id_args = {'realm': zerver_object.realm, 'user': zerver_object} else: # StreamCount id_args = {'realm': zerver_object.realm, 'stream': zerver_object} if stat.frequency == CountStat.DAY: end_time = ceiling_to_day(event_time) else: # CountStat.HOUR: end_time = ceiling_to_hour(event_time) row, created = table.objects.get_or_create( property=stat.property, subgroup=subgroup, end_time=end_time, defaults={'value': increment}, **id_args) if not created: row.value = F('value') + increment row.save(update_fields=['value'])
def do_increment_logging_stat( zerver_object: Union[Realm, UserProfile, Stream], stat: CountStat, subgroup: Optional[Union[str, int, bool]], event_time: datetime, increment: int = 1, ) -> None: if not increment: return table = stat.data_collector.output_table if table == RealmCount: assert isinstance(zerver_object, Realm) id_args: Dict[str, Union[Realm, UserProfile, Stream]] = {"realm": zerver_object} elif table == UserCount: assert isinstance(zerver_object, UserProfile) id_args = {"realm": zerver_object.realm, "user": zerver_object} else: # StreamCount assert isinstance(zerver_object, Stream) id_args = {"realm": zerver_object.realm, "stream": zerver_object} if stat.frequency == CountStat.DAY: end_time = ceiling_to_day(event_time) else: # CountStat.HOUR: end_time = ceiling_to_hour(event_time) row, created = table.objects.get_or_create( property=stat.property, subgroup=subgroup, end_time=end_time, defaults={"value": increment}, **id_args, ) if not created: row.value = F("value") + increment row.save(update_fields=["value"])