Beispiel #1
0
 def update(self, content):
     self.content = content
     try:
         db_session.add(self)
         db_session.commit()
     except (DataError, IntegrityError, ProgrammingError):
         db_session.rollback()
         raise
Beispiel #2
0
 def delete(self):
     try:
         db_session.delete(self.profile)
         db_session.delete(self)
         db_session.commit()
     except (DataError, IntegrityError, ProgrammingError):
         db_session.rollback()
         raise
Beispiel #3
0
 def mark_as_read(self):
     self.unread = False
     try:
         db_session.add(self)
         db_session.commit()
     except (DataError, IntegrityError, ProgrammingError):
         db_session.rollback()
         raise
Beispiel #4
0
 def create(cls, role):
     p = cls(role=role)
     try:
         db_session.add(p)
         db_session.commit()
     except (DataError, IntegrityError, ProgrammingError):
         db_session.rollback()
         raise
     return p
Beispiel #5
0
 def create(cls, username, post_id):
     user = User.get_by_name(username)
     f = cls(user_id=user.id, post_id=post_id)
     try:
         db_session.add(f)
         db_session.commit()
     except (DataError, IntegrityError, ProgrammingError):
         db_session.rollback()
         raise
     return f
Beispiel #6
0
 def create(cls, username, content):
     user = User.get_by_name(username)
     a = cls(author_id=user.id, content=content)
     try:
         db_session.add(a)
         db_session.commit()
     except (DataError, IntegrityError, ProgrammingError):
         db_session.rollback()
         raise
     return a
Beispiel #7
0
 def create(cls, username, blocked_name):
     user = User.get_by_name(username)
     blocked = User.get_by_name(blocked_name)
     b = cls(user_id=user.id, blocked_id=blocked.id)
     try:
         db_session.add(b)
         db_session.commit()
     except (DataError, IntegrityError, ProgrammingError):
         db_session.rollback()
         raise
     return b
Beispiel #8
0
 def create(cls, author_name, topic_id, content):
     user = User.get_by_name(author_name)
     now = functions.now()
     Topic.get(topic_id)._new_comment(now)
     c = cls(author_id=user.id, topic_id=topic_id, content=content, date=now)
     try:
         db_session.add(c)
         db_session.commit()
     except (DataError, IntegrityError, ProgrammingError):
         db_session.rollback()
         raise
     return c
Beispiel #9
0
 def create(cls, sender_name, recipient_name, message):
     sender = User.get_by_name(sender_name)
     recipient = User.get_by_name(recipient_name)
     pm = cls(sender_id=sender.id, recipient_id=recipient.id,
              message=message)
     try:
         db_session.add(pm)
         db_session.commit()
     except (DataError, IntegrityError, ProgrammingError):
         db_session.rollback()
         raise
     return pm
Beispiel #10
0
 def update(self, keywords=None, content=None, keep_silent=False, is_draft=None):
     if keywords:
         self.keywords = keywords
     self.content = content
     self.keep_silent = keep_silent
     if is_draft:
         self.is_draft = is_draft
     try:
         db_session.add(self)
         db_session.commit()
     except (DataError, IntegrityError, ProgrammingError):
         db_session.rollback()
         raise
Beispiel #11
0
 def create(cls, sender_name, recipient_name,
            activity_type, header, content):
     sender = User.get_by_name(sender_name)
     recipient = User.get_by_name(recipient_name)
     n = cls(sender_id=sender.id, recipient_id=recipient.id,
             activity_type=activity_type, header=header,
             content=content)
     try:
         db_session.add(n)
         db_session.commit()
     except (DataError, IntegrityError, ProgrammingError):
         db_session.rollback()
         raise
     return n
Beispiel #12
0
 def create(cls, author_name, topic_id, title, keywords, content="", keep_silent=False, is_draft=False):
     user = User.get_by_name(author_name)
     p = cls(
         topic_id=topic_id,
         author_id=user.id,
         title=title,
         keywords=keywords,
         content=content,
         keep_silent=keep_silent,
         is_draft=is_draft,
     )
     try:
         db_session.add(p)
         db_session.commit()
         user.update_permission(Roles.PostEdit.format(p.id))
     except (DataError, IntegrityError, ProgrammingError):
         db_session.rollback()
         raise
     return p
Beispiel #13
0
    def update(self, **kwargs):
        for k, v in kwargs.items():
            if hasattr(self, k):
                setattr(self, k, v)
            elif hasattr(self.profile, k):
                if k == 'gold':
                    v += getattr(self.profile, k)
                setattr(self.profile, k, v)

        if self.profile.gold >= Level['gold']['topic_creation']:
            self.role |= Permission.get_by_role('topic_creation').bit
        if self.profile.gold >= Level['gold']['vote']:
            self.role |= Permission.get_by_role('vote').bit
        try:
            db_session.add(self)
            db_session.commit()
        except (DataError, IntegrityError, ProgrammingError):
            db_session.rollback()
            raise
Beispiel #14
0
 def create(cls, **kwargs):
     user_attrs = dict()
     profile_attrs = dict()
     for k, v in kwargs.items():
         if hasattr(cls, k):
             user_attrs[k] = v
         elif hasattr(Profile, k):
             profile_attrs[k] = v
     profile = Profile(**profile_attrs)
     user_attrs.update({'profile': profile})
     user = cls(**user_attrs)
     try:
         db_session.add(user)
         db_session.add(profile)
         db_session.commit()
     except (DataError, IntegrityError, ProgrammingError):
         db_session.rollback()
         raise
     return user