Ejemplo n.º 1
0
    def __init__(self, data={}, actor=None, key=None):
        """ Automatically records a timestamp as well. """
        if data.get('type', self.TYPE) != self.TYPE:
            raise TypeError("Incompatible activity type.")

        self._data = {
            'ts': Services.time.time(),
            'type': self.TYPE,
        }

        if actor:
            #TODO have a UserDetails for example.com too to get rid of this branch.
            if settings.PROJECT == 'canvas':
                self._data['actor'] = {
                    'username': actor.username,
                    'id': actor.id
                }
            elif settings.PROJECT == 'drawquest':
                self._data['actor'] = UserDetails.from_id(actor.id).to_client()

        self._data.update(data)

        if 'id' not in self._data:
            from apps.activity.models import Activity
            db_activity = Activity.from_redis_activity(self, key=key)
            self._data['id'] = db_activity.id
Ejemplo n.º 2
0
 def _make_activity(self, activity_id):
     from apps.activity.models import Activity
     activity_data = Activity.details_by_id(activity_id)()
     try:
         return self._activity_types[activity_data['activity_type']](activity_data)
     except KeyError:
         return None
Ejemplo n.º 3
0
 def _make_activity(self, activity_id):
     from apps.activity.models import Activity
     activity_data = Activity.details_by_id(activity_id)()
     try:
         return self._activity_types[activity_data['activity_type']](
             activity_data)
     except KeyError:
         return None
Ejemplo n.º 4
0
    def push(self, activity_item):
        from apps.activity.models import Activity

        if not hasattr(activity_item, 'id'):
            dbactivity = Activity.from_redis_activity(activity_item)
            id_ = dbactivity.id
        else:
            id_ = activity_item.id
        self._buffer.bump(id_, coerce=False)

        self._invalidate_cache()
Ejemplo n.º 5
0
    def push(self, activity_item):
        from apps.activity.models import Activity

        if not hasattr(activity_item, 'id'):
            dbactivity = Activity.from_redis_activity(activity_item)
            id_ = dbactivity.id
        else:
            id_ = activity_item.id
        self._buffer.bump(id_, coerce=False)

        self._invalidate_cache()
    def _make_activity(self, activity_id):
        from apps.activity.models import Activity, LegacyActivity

        try:
            activity_data = Activity.details_by_id(activity_id)()
        except Activity.DoesNotExist:
            try:
                activity_data = LegacyActivity.details_by_id(activity_id)()
            except LegacyActivity.DoesNotExist:
                return None

        try:
            return self._activity_types[activity_data['activity_type']](activity_data)
        except KeyError as e:
            return None
Ejemplo n.º 7
0
    def _make_activity(self, activity_id):
        from apps.activity.models import Activity, LegacyActivity

        try:
            activity_data = Activity.details_by_id(activity_id)()
        except Activity.DoesNotExist:
            try:
                activity_data = LegacyActivity.details_by_id(activity_id)()
            except LegacyActivity.DoesNotExist:
                return None

        try:
            return self._activity_types[activity_data['activity_type']](
                activity_data)
        except KeyError as e:
            return None
    def __init__(self, data={}, actor=None, key=None):
        """ Automatically records a timestamp as well. """
        if data.get('type', self.TYPE) != self.TYPE:
            raise TypeError("Incompatible activity type.")

        self._data = {
            'ts': Services.time.time(),
            'type': self.TYPE,
        }

        if actor:
            #TODO have a UserDetails for example.com too to get rid of this branch.
            if settings.PROJECT == 'canvas':
                self._data['actor'] = {'username': actor.username, 'id': actor.id}
            elif settings.PROJECT == 'drawquest':
                self._data['actor'] = UserDetails.from_id(actor.id).to_client()

        self._data.update(data)

        if 'id' not in self._data:
            from apps.activity.models import Activity
            db_activity = Activity.from_redis_activity(self, key=key)
            self._data['id'] = db_activity.id