Bout de code inutile ?

akoicaser ?

a marqué ce sujet comme résolu.

Plop !

J'ai l'impression que le code de ZdS possède de temps en temps des bouts de code inutiles qui, a part donner une charge supplémentaire pourrait tres bien disparaître pour le moment…

Par exemple le morceau suivant :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
def details(request, user_name):
    """Displays details about a profile."""

    usr = get_object_or_404(User, username=user_name)
    try:
        profile = usr.profile
        bans = Ban.objects.filter(user=usr).order_by("-pubdate")
    except SiteProfileNotAvailable:
        raise Http404

    # refresh moderation chart

    dot_chart = pygal.Dot(x_label_rotation=30)
    dot_chart.title = u"Messages postés par période"
    dot_chart.x_labels = [
        u"Dimanche",
        u"Lundi",
        u"Mardi",
        u"Mercredi",
        u"Jeudi",
        u"Vendredi",
        u"Samedi",
    ]
    dot_chart.show_legend = False
    dates = date_to_chart(profile.get_posts())
    for i in range(0, 24):
        dot_chart.add(str(i) + " h", dates[(i + 1) % 24])
    img_path = os.path.join(settings.MEDIA_ROOT, "pygal")
    if not os.path.isdir(img_path):
        os.makedirs(img_path, mode=0o777)
    fchart = os.path.join(img_path, "mod-{}.svg".format(str(usr.pk)))
    dot_chart.render_to_file(fchart)
    my_articles = Article.objects.filter(sha_public__isnull=False).order_by(
        "-pubdate").filter(authors__in=[usr]).all()[:5]
    my_tutorials = \
        Tutorial.objects.filter(sha_public__isnull=False) \
        .filter(authors__in=[usr]) \
        .order_by("-pubdate"
                  ).all()[:5]

    my_tuto_versions = []
    for my_tutorial in my_tutorials:
        mandata = my_tutorial.load_json_for_public()
        my_tutorial.load_dic(mandata)
        my_tuto_versions.append(mandata)
    my_article_versions = []
    for my_article in my_articles:
        article_version = my_article.load_json_for_public()
        my_article.load_dic(article_version)
        my_article_versions.append(article_version)

    my_topics = \
        Topic.objects\
        .filter(author=usr)\
        .exclude(Q(forum__group__isnull=False) & ~Q(forum__group__in=request.user.groups.all()))\
        .prefetch_related("author")\
        .order_by("-pubdate").all()[:5]

    form = OldTutoForm(profile)
    oldtutos = []
    if profile.sdz_tutorial:
        olds = profile.sdz_tutorial.strip().split(":")
    else:
        olds = []
    for old in olds:
        oldtutos.append(get_info_old_tuto(old))
    return render_template("member/profile.html", {
        "usr": usr,
        "profile": profile,
        "bans": bans,
        "articles": my_article_versions,
        "tutorials": my_tuto_versions,
        "topics": my_topics,
        "form": form,
        "old_tutos": oldtutos,
    })

Les lignes surlignées donnent l'impression qu'un fichier image est créé mais ce dernier n'est jamais utilise a ma connaissance. Du coup a quoi bon avoir du code qui crée ce fichier ? (je suppose que ce devait être une joli feature qui n'a pas encore vu le jour). (c'est ballot car ca représente 25$ du volume de la méthode)

+0 -0

Si je comprends bien le code, ça génère un graphe du nombre de post par jour et l'enregistre dans une image ? Donc tu renvoies au front le chemin vers l'image et ce dernier l'affiche ?

Pour "economiser" du processeur/disque il faudrait pas executer ca juste quand un staff visite le profil ? (car j'ai jamais vu ce truc pendant la beta donc je suppose que c'etait que pour les staff ?)

+0 -0

Ok.

Mais au pire on peut pas l'integrer et faire le CSS plus tard (car c'est pas un outil publique donc rien de dramatique ?)

En tout cas je vais faire un ticket sur la remise en place de cet outil en général et ce soir une PR pour mettre une condition "is staff" sur ce bout de code (car ca me fait vraiment ticker la génération inutile pour tous)

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte