Revision 8f50f91c

b/invitations/invitations.py
85 85
    if errors:
86 86
        data = render_to_string('invitations.html',
87 87
                                {'invitations': invitations_for_user(request),
88
                                    'errors': errors, 'ajax': request.is_ajax()},
88
                                    'errors': errors,
89
                                    'ajax': request.is_ajax(),
90
                                    'invitations_left': get_invitations_left(request.user)
91
                                },
89 92
                                context_instance=RequestContext(request))
90 93
        response =  HttpResponse(data)
91 94
        _logger.warn("Error adding invitation %s -> %s: %s"%(request.user.uniq,
......
130 133

  
131 134
    if request.method == 'GET':
132 135
        data = render_to_string('invitations.html',
133
                {'invitations': invitations_for_user(request), 'ajax': request.is_ajax()},
136
                {'invitations': invitations_for_user(request),
137
                    'ajax': request.is_ajax(),
138
                    'invitations_left': get_invitations_left(request.user)
139
                },
134 140
                                context_instance=RequestContext(request))
135 141
        return  HttpResponse(data)
136 142
    elif request.method == 'POST':
......
303 309
    invitation.accepted = True
304 310
    invitation.save()
305 311

  
312

  
313
def get_invitations_left(user):
314
    """
315
    Get user invitations left
316
    """
317
    num_inv = Invitations.objects.filter(source = user).count()
318
    return user.max_invitations - num_inv
319

  
306 320
class InvitationException(Exception):
307 321
    messages = []
308 322

  
b/invitations/templates/invitations.html
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
1
{% load i18n %}{% if not ajax %}<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2 2
        "http://www.w3.org/TR/html4/loose.dtd">
3 3
<html>
4 4
<head>
5
    <title>Αποστολή προσκλήσεων σε χρήστες</title>
6
    {% if not ajax %}
5
<title>{% trans "Invitations" %}</title>
7 6
    <script src="/static/jquery.tools.min.js"></script>
8 7
    <script src="/invitations/static/invitations.js"></script>
9
    {% endif %}
10 8

  
11 9
    <script type="text/javascript">
12
    {% if not ajax %}
13 10
    $(document).ready(function() {
14 11
        $("#invform #removable-name-container-1").dynamicField();
15 12
    });
16
    {% endif %}
17 13

  
18 14
    </script>
19 15

  
20 16
</head>
21 17
<body>
18
{% endif %}
19
<div class="invitations-left">({% blocktrans with invitations_left as left %}{{ left }} left{% endblocktrans %})</div>
22 20
<form action="/invitations/" method="post" id="invform">
23 21
    {% csrf_token %}
24 22
    
......
32 30
        </div>
33 31
    {% endif %}
34 32

  
35
    <div id="fieldheaders">
36
        <span id="field_name_name">Όνομα</span>
37
        <span id="field_email_name">Email</span>
33
    <div id="fieldheaders" class="clearfix">
34
        <span id="field_name_name">{% trans "Name" %}<span class="description">(e.g. John Smith)</span></span>
35
        <span id="field_email_name">{% trans "Email" %}</span>
38 36
    </div>
39 37
    <div id="fields">
40
        <div id="removable-name-container-1" class="removable-field-row">
41
            <input type="text" name="name_1" id="name_1" value="" class="textInput removable" /><input type="text" name="email_1" id="email_1" value="" class="textInput removable" /><img src="/static/spacer.gif" width="16" height="16" alt="" title="Remove This Item" class="" />
38
        <div id="removable-name-container-1" class="removable-field-row"><input type="text" name="name_1" id="name_1" value="" class="textInput removable" /><input type="text" name="email_1" id="email_1" value="" class="textInput removable" /><img src="/static/spacer.gif" width="16" height="16" alt="" title="Remove This Item" class="" />
42 39
        </div>
43 40
        <div id="add-name-container" class="add-field-container">
44 41
        <span class="add-field-trigger">
45 42
            <img src="/static/add.gif" alt="" title="Add New Item" />
46
            Προσθήκη Παραλήπτη
43
            {% trans "Add invitation" %}
47 44
        </span>
48 45
        </div>
49 46
    </div>
50
    <p><input type="submit" value="Αποστολή Προσκλήσεων" /></p>
47
    <p><input type="submit" value="{% trans "Send invitations" %}" /></p>
51 48
</form>
52 49

  
53 50
<div id="invsent">
54 51

  
55
    <h3>Λίστα προσκλήσεων που έχουν αποσταλεί
56
    <span>(<img src="/static/save.png" alt=""> = Η πρόσκληση έγινε
57
        αποδεκτή)</span></h3>
52
    <h3 class="clearfix">{% trans "Sent invitations" %}
53
        <span>(<img src="/static/invitation_accepted.png" alt="{% trans "Invitation accepted" %}"> = {% trans "Invitation has been accepted" %})</span></h3>
58 54
    <div>
59 55
        <ul>
60 56
        {% for inv in invitations %}
61
            <li>
57
        <li class="clearfix {% if inv.accepted %}accepted{% endif %}">
62 58
                {% if inv.accepted %}
63
                    <img src="/static/save.png" alt="">
59
                <img src="/static/invitation_accepted.png" alt="{% trans "Invitation accpeted" %}">
64 60
                {% endif %}
65
                {{ inv.targetname }} &lt;{{ inv.target }}&gt;
61
                <span class="name">{{ inv.targetname }}</span> <span class="email">{{ inv.target }}</span>
66 62
            </li>
67 63
        {% endfor %}
68 64
        </ul>

Also available in: Unified diff