Return a tuple of the next and latest non-vulnerable versions as Package instance. Return a tuple of (None, None) if there is no non-vulnerable version.
(self)
| 1047 | return latest_non_vulnerable.version if latest_non_vulnerable else None |
| 1048 | |
| 1049 | def get_non_vulnerable_versions(self): |
| 1050 | """ |
| 1051 | Return a tuple of the next and latest non-vulnerable versions as Package instance. |
| 1052 | Return a tuple of (None, None) if there is no non-vulnerable version. |
| 1053 | """ |
| 1054 | if self.version_rank == 0: |
| 1055 | self.calculate_version_rank |
| 1056 | non_vulnerable_versions = Package.objects.get_fixed_by_package_versions( |
| 1057 | self, fix=False |
| 1058 | ).only_non_vulnerable() |
| 1059 | |
| 1060 | later_non_vulnerable_versions = non_vulnerable_versions.filter( |
| 1061 | version_rank__gt=self.version_rank |
| 1062 | ) |
| 1063 | |
| 1064 | later_non_vulnerable_versions = list(later_non_vulnerable_versions) |
| 1065 | |
| 1066 | if later_non_vulnerable_versions: |
| 1067 | sorted_versions = later_non_vulnerable_versions |
| 1068 | next_non_vulnerable = sorted_versions[0] |
| 1069 | latest_non_vulnerable = sorted_versions[-1] |
| 1070 | return next_non_vulnerable, latest_non_vulnerable |
| 1071 | |
| 1072 | return None, None |
| 1073 | |
| 1074 | @property |
| 1075 | def fixed_package_details(self): |