Trees | Indices | Help |
---|
|
1 import flask 2 from datetime import datetime, timedelta 3 from coprs import db 4 from coprs import app 5 from coprs import models 6 from coprs.logic.complex_logic import ComplexLogic 7 from coprs.logic.coprs_logic import CoprChrootsLogic11 @classmethod9113 """ 14 Does a user have some projects with newly outdated chroots that he 15 hasn't reviewed yet? 16 """ 17 projects = ComplexLogic.get_coprs_permissible_by_user(user) 18 projects_ids = [p.id for p in projects] 19 period = app.config["EOL_CHROOTS_NOTIFICATION_PERIOD"] 20 now = datetime.now() 21 soon = now + timedelta(days=period) 22 23 reviewed = [x.copr_chroot_id for x in cls.get_all_reviews(user).all()] 24 return bool((models.CoprChroot.query 25 .filter(models.CoprChroot.copr_id.in_(projects_ids)) 26 .filter(models.CoprChroot.delete_after != None) 27 .filter(models.CoprChroot.delete_after <= soon) 28 .filter(models.CoprChroot.delete_after > now) 29 .filter(models.CoprChroot.id.notin_(reviewed)) 30 .first()))31 32 @classmethod34 """ 35 Query all outdated chroots that a user has already seen 36 """ 37 return (models.ReviewedOutdatedChroot.query 38 .filter(models.ReviewedOutdatedChroot.user_id == user.id))39 40 @classmethod42 """ 43 A `user` declares that he has seen and reviewed all outdated chroots in 44 all of his projects (i.e. this method creates `ReviewedOutdatedChroot` 45 results for all of them) 46 """ 47 reviews = {x.copr_chroot_id for x in cls.get_all_reviews(user)} 48 for copr in ComplexLogic.get_coprs_permissible_by_user(user): 49 for chroot in copr.outdated_chroots: 50 if chroot.id in reviews: 51 continue 52 53 period = app.config["EOL_CHROOTS_NOTIFICATION_PERIOD"] 54 if chroot.delete_after_days > period: 55 continue 56 57 review = models.ReviewedOutdatedChroot( 58 user_id=user.id, 59 copr_chroot_id=chroot.id, 60 ) 61 db.session.add(review)62 63 @classmethod65 """ 66 A `user` decided to extend the preservation period for some EOL chroot 67 """ 68 delete_after_days = app.config["DELETE_EOL_CHROOTS_AFTER"] + 1 69 cls._update_copr_chroot(copr_chroot, delete_after_days) 70 (models.ReviewedOutdatedChroot.query 71 .filter(models.ReviewedOutdatedChroot.copr_chroot_id 72 == copr_chroot.id)).delete()73 74 @classmethod76 """ 77 A `user` decided to expire some EOL chroot, 78 i.e. its data should be deleted ASAP 79 """ 80 delete_after_days = 0 81 cls._update_copr_chroot(copr_chroot, delete_after_days)82 83 @classmethod85 delete_after_timestamp = ( 86 datetime.now() 87 + timedelta(days=delete_after_days) 88 ) 89 CoprChrootsLogic.update_chroot(flask.g.user, copr_chroot, 90 delete_after=delete_after_timestamp)
Trees | Indices | Help |
---|
Generated by Epydoc 3.0.1 | http://epydoc.sourceforge.net |