1 {% macro render_reviews(reviews, current_user, show_package_link=False) -%}
2 <ul class="comments mt-4 mb-0">
3 {% for review in reviews %}
4 <li class="row my-2 mx-0">
5 <div class="col-md-1 p-1">
6 <a href="{{ url_for('users.profile', username=review.author.username) }}">
7 <img class="img-responsive user-photo img-thumbnail img-thumbnail-1" src="{{ review.author.getProfilePicURL() }}">
10 <div class="col-md-auto pl-1 pr-3 pt-2 text-center" style=" font-size: 200%;">
11 {% if review.recommends %}
12 <i class="fas fa-thumbs-up" style="color:#6f6;"></i>
14 <i class="fas fa-thumbs-down" style="color:#f66;"></i>
17 {% if review.thread %}
18 {% set reply = review.thread.replies[0] %}
19 <div class="col pr-0">
21 <div class="card-header">
22 <a class="author {{ reply.author.rank.name }}"
23 href="{{ url_for('users.profile', username=reply.author.username) }}">
24 {{ reply.author.display_name }}
27 <a name="reply-{{ reply.id }}" class="text-muted float-right"
28 href="{{ url_for('threads.view', id=review.thread.id) }}#reply-{{ reply.id }}">
29 {{ reply.created_at | datetime }}
33 <div class="card-body">
34 {% if current_user == review.author %}
35 <a class="btn btn-primary btn-sm ml-1 float-right"
36 href="{{ review.package.getReviewURL() }}">
37 <i class="fas fa-edit"></i>
42 <strong>{{ review.thread.title }}</strong>
45 {{ reply.comment | markdown }}
48 {% if show_package_link %}
49 <a class="btn btn-primary mr-1" href="{{ review.package.getDetailsURL() }}">
50 {{ _("%(title)s by %(author)s",
51 title="<b>" | safe + review.package.title + "</b>" | safe,
52 author=review.package.author.display_name) }}
56 <a class="btn {% if review.thread.replies.count() > 1 %} btn-primary {% else %} btn-secondary {% endif %}"
57 href="{{ url_for('threads.view', id=review.thread.id) }}">
58 <i class="fas fa-comments mr-2"></i>
59 {{ _("%(num)d comments", num=review.thread.replies.count() - 1) }}
69 <i>{{ _("No reviews, yet.") }}</i>
76 {% macro render_review_form(package, current_user) -%}
77 <div class="card mt-0 mb-4 ">
78 <div class="card-header">
81 <form method="post" action="{{ package.getReviewURL() }}" class="card-body">
82 <input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
84 {{ _("Do you recommend this %(type)s?", type=package.type.value | lower) }}
87 <div class="btn-group btn-group-toggle" data-toggle="buttons">
88 <label class="btn btn-primary">
89 <i class="fas fa-thumbs-up mr-2"></i>
90 <input type="radio" name="recommends" value="yes" autocomplete="off"> {{ _("Yes") }}
92 <label class="btn btn-primary">
93 <i class="fas fa-thumbs-down mr-2"></i>
94 <input type="radio" name="recommends" value="no" autocomplete="off"> {{ _("No") }}
99 {{ _("Why or why not? Try to be constructive") }}
102 <div class="form-group">
103 <label for="title">{{ _("Title") }}</label>
104 <input class="form-control" id="title" name="title" required="" type="text">
107 <textarea class="form-control markdown" required maxlength=500 name="comment"></textarea><br />
108 <input class="btn btn-primary" type="submit" value="{{ _('Post Review') }}" />
114 {% macro render_review_preview(package, current_user) -%}
115 <input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
116 <div class="card mt-0 mb-4 ">
117 <div class="card-header">
120 <div class="card-body">
122 {{ _("Do you recommend this %(type)s?", type=package.type.value | lower) }}
125 <div class="btn-group">
126 <a class="btn btn-primary" href="{{ url_for('user.login', r=package.getReviewURL()) }}">
127 <i class="fas fa-thumbs-up mr-2"></i>
130 <a class="btn btn-primary" href="{{ url_for('user.login', r=package.getReviewURL()) }}">
131 <i class="fas fa-thumbs-down mr-2"></i>