Пример #1
0
def required_size_for_config(request):
    try:
        payload = request.body
        if type(payload) is bytes:
            payload = payload.decode("UTF-8")
        data = json.loads(payload)
    except Exception:
        return JsonResponse({"error": str(request.body)})

    # check disk space
    collection = get_collection(
        edupi=data.get("edupi", False),
        edupi_resources=data.get("edupi_resources", None),
        nomad=data.get("nomad", False),
        mathews=data.get("mathews", False),
        africatik=data.get("africatik", False),
        packages=data.get("packages", []),
        kalite_languages=data.get("kalite", []),
        wikifundi_languages=data.get("wikifundi", []),
        aflatoun_languages=["fr", "en"] if data.get("aflatoun", False) else [],
    )
    required_image_size = get_required_image_size(collection)
    media = Media.get_min_for(required_image_size)
    return JsonResponse({
        "size":
        required_image_size,
        "hsize":
        human_readable_size(required_image_size, False),
        "media_size":
        human_readable_size(media.size * ONE_GB, False) if media else None,
        "hfree":
        human_readable_size(media.bytes -
                            required_image_size) if media else None,
    })
Пример #2
0
 def size_value_changed(self):
     computed_size = get_required_image_size(self.collection)
     if computed_size != self.size:
         self.size = computed_size
         return True
     return False
Пример #3
0
 def save(self, *args, **kwargs):
     self.size = get_required_image_size(self.collection)
     super().save(*args, **kwargs)