--- a/src/hdalab/models/renkan.py Wed Mar 04 15:24:23 2015 +0100
+++ b/src/hdalab/models/renkan.py Thu Mar 05 13:45:11 2015 +0100
@@ -61,31 +61,33 @@
app_label = 'hdalab'
MAIL_TEMPLATES = {
- HdalabRenkan.PUBLISHED: ("mails/published_renkan", "Renkan publié"),
- HdalabRenkan.REJECTED: ("mails/rejected_renkan", "Renkan rejeté")
+ (HdalabRenkan.MODERATED,HdalabRenkan.PUBLISHED): ("mails/published_renkan", "Renkan publié"),
+ (HdalabRenkan.MODERATED,HdalabRenkan.REJECTED): ("mails/rejected_renkan", "Renkan rejeté"),
+ (HdalabRenkan.PUBLISHED, HdalabRenkan.EDITION): ("mails/unpublished_renkan", "Renkan dépublié"),
}
#TODO put into queue
def send_renkan_moderation_messages(sender, **kwargs):
renkan_state = kwargs.get('instance', None)
- if not renkan_state or renkan_state.to_state not in MAIL_TEMPLATES:
+ if not renkan_state or (renkan_state.from_state,renkan_state.to_state) not in MAIL_TEMPLATES:
return
+ template_key = (renkan_state.from_state,renkan_state.to_state)
msg_txt = ""
msg_html = ""
subject = ""
try:
- template_name, subject = MAIL_TEMPLATES[renkan_state.to_state]
+ template_name, subject = MAIL_TEMPLATES[template_key]
# template = loader.get_template(template_name)
context = {'renkan_state': renkan_state, 'WEB_URL': settings.WEB_URL}
msg_html = render_to_string(template_name+".txt", context)
msg_txt = render_to_string(template_name+".html", context)
except TemplateDoesNotExist:
- logger.error("Mail template %s for state %s not found", MAIL_TEMPLATES[renkan_state.to_state], HdalabRenkan.STATE_CHOICES_DICT[renkan_state.to_state])
+ logger.error("Mail template %s for state %s not found", MAIL_TEMPLATES[template_key], HdalabRenkan.STATE_CHOICES_DICT[renkan_state.to_state])
return
except Exception as e:
- logger.error("Error rendering template %s for state %s : %r", MAIL_TEMPLATES[renkan_state.to_state], HdalabRenkan.STATE_CHOICES_DICT[renkan_state.to_state], e)
+ logger.error("Error rendering template %s for state %s : %r", MAIL_TEMPLATES[template_key], HdalabRenkan.STATE_CHOICES_DICT[renkan_state.to_state], e)
if msg_txt and msg_html and renkan_state.renkan and renkan_state.renkan.renkan and renkan_state.renkan.renkan.owner and renkan_state.renkan.renkan.owner.email:
logger.debug("Sending following mail to %s : %s", renkan_state.renkan.renkan.owner.email, msg_txt)
--- a/src/hdalab/static/hdalab/js/manage.js Wed Mar 04 15:24:23 2015 +0100
+++ b/src/hdalab/static/hdalab/js/manage.js Thu Mar 05 13:45:11 2015 +0100
@@ -14,4 +14,47 @@
});
});
+
+
+ $(".renkan-publish-action").mousedown(function(e) {
+ vex.dialog.confirm({
+ message: renkanActionMessages.publish,
+ callback: function(value) {
+ if(value) {
+ e.target.click();
+ }
+ }
+ });
+ e.preventDefault();
+ });
+
+ $(".renkan-unpublish-action").mousedown(function(e) {
+ vex.dialog.prompt({
+ message: renkanActionMessages.unpublish,
+ input: "<textarea name=\"vex\" class=\"vex-dialog-prompt-input\" placeholder=\"message\" rows=\"3\" />",
+ callback: function(message) {
+ if(message !== false) {
+ $('.action-message',$(e.target).parent()).val(message);
+ e.target.click();
+ }
+ }
+ });
+ e.preventDefault();
+ });
+
+ $(".renkan-reject-action").mousedown(function(e) {
+ vex.dialog.prompt({
+ message: renkanActionMessages.reject,
+ input: "<textarea name=\"vex\" class=\"vex-dialog-prompt-input\" placeholder=\"message\" rows=\"3\" />",
+ callback: function(message) {
+ if(message !== false) {
+ $('.action-message',$(e.target).parent()).val(message);
+ e.target.click();
+ }
+ }
+ });
+ e.preventDefault();
+ });
+
+
});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/static/hdalab/lib/vex/css/vex-theme-os.css Thu Mar 05 13:45:11 2015 +0100
@@ -0,0 +1,533 @@
+@keyframes vex-flyin {
+ /* line 25, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 0;
+ transform: translateY(-40px);
+ -webkit-transform: translateY(-40px);
+ -moz-transform: translateY(-40px);
+ -ms-transform: translateY(-40px);
+ -o-transform: translateY(-40px);
+ }
+
+ /* line 28, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 1;
+ transform: translateY(0);
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ -o-transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes vex-flyin {
+ /* line 25, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 0;
+ transform: translateY(-40px);
+ -webkit-transform: translateY(-40px);
+ -moz-transform: translateY(-40px);
+ -ms-transform: translateY(-40px);
+ -o-transform: translateY(-40px);
+ }
+
+ /* line 28, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 1;
+ transform: translateY(0);
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ -o-transform: translateY(0);
+ }
+}
+
+@-moz-keyframes vex-flyin {
+ /* line 25, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 0;
+ transform: translateY(-40px);
+ -webkit-transform: translateY(-40px);
+ -moz-transform: translateY(-40px);
+ -ms-transform: translateY(-40px);
+ -o-transform: translateY(-40px);
+ }
+
+ /* line 28, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 1;
+ transform: translateY(0);
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ -o-transform: translateY(0);
+ }
+}
+
+@-ms-keyframes vex-flyin {
+ /* line 25, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 0;
+ transform: translateY(-40px);
+ -webkit-transform: translateY(-40px);
+ -moz-transform: translateY(-40px);
+ -ms-transform: translateY(-40px);
+ -o-transform: translateY(-40px);
+ }
+
+ /* line 28, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 1;
+ transform: translateY(0);
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ -o-transform: translateY(0);
+ }
+}
+
+@-o-keyframes vex-flyin {
+ /* line 25, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 0;
+ transform: translateY(-40px);
+ -webkit-transform: translateY(-40px);
+ -moz-transform: translateY(-40px);
+ -ms-transform: translateY(-40px);
+ -o-transform: translateY(-40px);
+ }
+
+ /* line 28, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 1;
+ transform: translateY(0);
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ -o-transform: translateY(0);
+ }
+}
+
+@keyframes vex-flyout {
+ /* line 34, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 1;
+ transform: translateY(0);
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ -o-transform: translateY(0);
+ }
+
+ /* line 37, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 0;
+ transform: translateY(-40px);
+ -webkit-transform: translateY(-40px);
+ -moz-transform: translateY(-40px);
+ -ms-transform: translateY(-40px);
+ -o-transform: translateY(-40px);
+ }
+}
+
+@-webkit-keyframes vex-flyout {
+ /* line 34, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 1;
+ transform: translateY(0);
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ -o-transform: translateY(0);
+ }
+
+ /* line 37, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 0;
+ transform: translateY(-40px);
+ -webkit-transform: translateY(-40px);
+ -moz-transform: translateY(-40px);
+ -ms-transform: translateY(-40px);
+ -o-transform: translateY(-40px);
+ }
+}
+
+@-moz-keyframes vex-flyout {
+ /* line 34, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 1;
+ transform: translateY(0);
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ -o-transform: translateY(0);
+ }
+
+ /* line 37, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 0;
+ transform: translateY(-40px);
+ -webkit-transform: translateY(-40px);
+ -moz-transform: translateY(-40px);
+ -ms-transform: translateY(-40px);
+ -o-transform: translateY(-40px);
+ }
+}
+
+@-ms-keyframes vex-flyout {
+ /* line 34, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 1;
+ transform: translateY(0);
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ -o-transform: translateY(0);
+ }
+
+ /* line 37, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 0;
+ transform: translateY(-40px);
+ -webkit-transform: translateY(-40px);
+ -moz-transform: translateY(-40px);
+ -ms-transform: translateY(-40px);
+ -o-transform: translateY(-40px);
+ }
+}
+
+@-o-keyframes vex-flyout {
+ /* line 34, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 1;
+ transform: translateY(0);
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ -o-transform: translateY(0);
+ }
+
+ /* line 37, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 0;
+ transform: translateY(-40px);
+ -webkit-transform: translateY(-40px);
+ -moz-transform: translateY(-40px);
+ -ms-transform: translateY(-40px);
+ -o-transform: translateY(-40px);
+ }
+}
+
+@keyframes vex-pulse {
+ /* line 136, ../sass/_keyframes.sass */
+ 0% {
+ -webkit-box-shadow: inset 0 0 0 300px transparent;
+ -moz-box-shadow: inset 0 0 0 300px transparent;
+ box-shadow: inset 0 0 0 300px transparent;
+ }
+
+ /* line 138, ../sass/_keyframes.sass */
+ 70% {
+ -webkit-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ -moz-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ }
+
+ /* line 140, ../sass/_keyframes.sass */
+ 100% {
+ -webkit-box-shadow: inset 0 0 0 300px transparent;
+ -moz-box-shadow: inset 0 0 0 300px transparent;
+ box-shadow: inset 0 0 0 300px transparent;
+ }
+}
+
+@-webkit-keyframes vex-pulse {
+ /* line 136, ../sass/_keyframes.sass */
+ 0% {
+ -webkit-box-shadow: inset 0 0 0 300px transparent;
+ -moz-box-shadow: inset 0 0 0 300px transparent;
+ box-shadow: inset 0 0 0 300px transparent;
+ }
+
+ /* line 138, ../sass/_keyframes.sass */
+ 70% {
+ -webkit-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ -moz-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ }
+
+ /* line 140, ../sass/_keyframes.sass */
+ 100% {
+ -webkit-box-shadow: inset 0 0 0 300px transparent;
+ -moz-box-shadow: inset 0 0 0 300px transparent;
+ box-shadow: inset 0 0 0 300px transparent;
+ }
+}
+
+@-moz-keyframes vex-pulse {
+ /* line 136, ../sass/_keyframes.sass */
+ 0% {
+ -webkit-box-shadow: inset 0 0 0 300px transparent;
+ -moz-box-shadow: inset 0 0 0 300px transparent;
+ box-shadow: inset 0 0 0 300px transparent;
+ }
+
+ /* line 138, ../sass/_keyframes.sass */
+ 70% {
+ -webkit-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ -moz-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ }
+
+ /* line 140, ../sass/_keyframes.sass */
+ 100% {
+ -webkit-box-shadow: inset 0 0 0 300px transparent;
+ -moz-box-shadow: inset 0 0 0 300px transparent;
+ box-shadow: inset 0 0 0 300px transparent;
+ }
+}
+
+@-ms-keyframes vex-pulse {
+ /* line 136, ../sass/_keyframes.sass */
+ 0% {
+ -webkit-box-shadow: inset 0 0 0 300px transparent;
+ -moz-box-shadow: inset 0 0 0 300px transparent;
+ box-shadow: inset 0 0 0 300px transparent;
+ }
+
+ /* line 138, ../sass/_keyframes.sass */
+ 70% {
+ -webkit-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ -moz-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ }
+
+ /* line 140, ../sass/_keyframes.sass */
+ 100% {
+ -webkit-box-shadow: inset 0 0 0 300px transparent;
+ -moz-box-shadow: inset 0 0 0 300px transparent;
+ box-shadow: inset 0 0 0 300px transparent;
+ }
+}
+
+@-o-keyframes vex-pulse {
+ /* line 136, ../sass/_keyframes.sass */
+ 0% {
+ -webkit-box-shadow: inset 0 0 0 300px transparent;
+ -moz-box-shadow: inset 0 0 0 300px transparent;
+ box-shadow: inset 0 0 0 300px transparent;
+ }
+
+ /* line 138, ../sass/_keyframes.sass */
+ 70% {
+ -webkit-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ -moz-box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ box-shadow: inset 0 0 0 300px rgba(255, 255, 255, 0.25);
+ }
+
+ /* line 140, ../sass/_keyframes.sass */
+ 100% {
+ -webkit-box-shadow: inset 0 0 0 300px transparent;
+ -moz-box-shadow: inset 0 0 0 300px transparent;
+ box-shadow: inset 0 0 0 300px transparent;
+ }
+}
+
+/* line 13, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os {
+ padding-top: 160px;
+ padding-bottom: 160px;
+}
+/* line 17, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os.vex-closing .vex-content {
+ animation: vex-flyout 0.5s;
+ -webkit-animation: vex-flyout 0.5s;
+ -moz-animation: vex-flyout 0.5s;
+ -ms-animation: vex-flyout 0.5s;
+ -o-animation: vex-flyout 0.5s;
+ -webkit-backface-visibility: hidden;
+}
+/* line 20, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-content {
+ animation: vex-flyin 0.5s;
+ -webkit-animation: vex-flyin 0.5s;
+ -moz-animation: vex-flyin 0.5s;
+ -ms-animation: vex-flyin 0.5s;
+ -o-animation: vex-flyin 0.5s;
+ -webkit-backface-visibility: hidden;
+}
+/* line 23, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-content {
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ -ms-border-radius: 5px;
+ -o-border-radius: 5px;
+ border-radius: 5px;
+ -webkit-box-shadow: inset 0 1px #a6a6a6, 0 0 0 1px rgba(0, 0, 0, 0.08);
+ -moz-box-shadow: inset 0 1px #a6a6a6, 0 0 0 1px rgba(0, 0, 0, 0.08);
+ box-shadow: inset 0 1px #a6a6a6, 0 0 0 1px rgba(0, 0, 0, 0.08);
+ font-family: "Helvetica Neue", sans-serif;
+ border-top: 20px solid #bbbbbb;
+ background: #f0f0f0;
+ color: #444444;
+ padding: 1em;
+ position: relative;
+ margin: 0 auto;
+ max-width: 100%;
+ width: 450px;
+ font-size: 1.1em;
+ line-height: 1.5em;
+}
+/* line 38, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-content h1, .vex.vex-theme-os .vex-content h2, .vex.vex-theme-os .vex-content h3, .vex.vex-theme-os .vex-content h4, .vex.vex-theme-os .vex-content h5, .vex.vex-theme-os .vex-content h6, .vex.vex-theme-os .vex-content p, .vex.vex-theme-os .vex-content ul, .vex.vex-theme-os .vex-content li {
+ color: inherit;
+}
+/* line 41, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-close {
+ -webkit-border-radius: 0 5px 0 0;
+ -moz-border-radius: 0 5px 0 0;
+ -ms-border-radius: 0 5px 0 0;
+ -o-border-radius: 0 5px 0 0;
+ border-radius: 0 5px 0 0;
+ position: absolute;
+ top: 0;
+ right: 0;
+ cursor: pointer;
+}
+/* line 48, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-close:before {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius: 3px;
+ border-radius: 3px;
+ position: absolute;
+ content: "\00D7";
+ font-size: 26px;
+ font-weight: normal;
+ line-height: 31px;
+ height: 30px;
+ width: 30px;
+ text-align: center;
+ top: 3px;
+ right: 3px;
+ color: #bbbbbb;
+ background: transparent;
+}
+/* line 63, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-close:hover:before, .vex.vex-theme-os .vex-close:active:before {
+ color: #777777;
+ background: #e0e0e0;
+}
+/* line 69, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-dialog-form .vex-dialog-message {
+ margin-bottom: 0.5em;
+}
+/* line 72, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-dialog-form .vex-dialog-input {
+ margin-bottom: 1em;
+}
+/* line 75, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-dialog-form .vex-dialog-input textarea, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="date"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime-local"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="email"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="month"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="number"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="password"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="search"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="tel"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="text"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="time"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="url"], .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="week"] {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius: 3px;
+ border-radius: 3px;
+ background: white;
+ width: 100%;
+ padding: 0.25em 0.67em;
+ border: 0;
+ font-family: inherit;
+ font-weight: inherit;
+ font-size: inherit;
+ min-height: 2.5em;
+ margin: 0 0 0.25em;
+}
+/* line 87, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-dialog-form .vex-dialog-input textarea:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="date"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="datetime-local"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="email"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="month"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="number"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="password"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="search"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="tel"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="text"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="time"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="url"]:focus, .vex.vex-theme-os .vex-dialog-form .vex-dialog-input input[type="week"]:focus {
+ -webkit-box-shadow: inset 0 0 0 1px #3288e6;
+ -moz-box-shadow: inset 0 0 0 1px #3288e6;
+ box-shadow: inset 0 0 0 1px #3288e6;
+ outline: none;
+}
+/* line 91, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-dialog-form .vex-dialog-buttons {
+ *zoom: 1;
+}
+/* line 38, ../../../../../.rvm/gems/ruby-1.9.3-p194/gems/compass-0.12.2/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss */
+.vex.vex-theme-os .vex-dialog-form .vex-dialog-buttons:after {
+ content: "";
+ display: table;
+ clear: both;
+}
+/* line 94, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-dialog-button {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius: 3px;
+ border-radius: 3px;
+ border: 0;
+ float: right;
+ margin: 0 0 0 0.5em;
+ font-family: inherit;
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
+ font-size: 0.8em;
+ line-height: 1em;
+ padding: 0.75em 2em;
+}
+/* line 106, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-dialog-button.vex-last {
+ margin-left: 0;
+}
+/* line 109, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-dialog-button:focus {
+ animation: vex-pulse 1.1s infinite;
+ -webkit-animation: vex-pulse 1.1s infinite;
+ -moz-animation: vex-pulse 1.1s infinite;
+ -ms-animation: vex-pulse 1.1s infinite;
+ -o-animation: vex-pulse 1.1s infinite;
+ -webkit-backface-visibility: hidden;
+ outline: none;
+}
+@media (max-width: 568px) {
+ /* line 109, ../sass/vex-theme-os.sass */
+ .vex.vex-theme-os .vex-dialog-button:focus {
+ animation: none;
+ -webkit-animation: none;
+ -moz-animation: none;
+ -ms-animation: none;
+ -o-animation: none;
+ -webkit-backface-visibility: hidden;
+ }
+}
+/* line 118, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-dialog-button.vex-dialog-button-primary {
+ background: #3288e6;
+ color: white;
+}
+/* line 122, ../sass/vex-theme-os.sass */
+.vex.vex-theme-os .vex-dialog-button.vex-dialog-button-secondary {
+ background: #e0e0e0;
+ color: #777777;
+}
+
+/* line 126, ../sass/vex-theme-os.sass */
+.vex-loading-spinner.vex-theme-os {
+ -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2), 0 0 0.5em rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2), 0 0 0.5em rgba(0, 0, 0, 0.2);
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2), 0 0 0.5em rgba(0, 0, 0, 0.2);
+ -webkit-border-radius: 100%;
+ -moz-border-radius: 100%;
+ -ms-border-radius: 100%;
+ -o-border-radius: 100%;
+ border-radius: 100%;
+ background: rgba(255, 255, 255, 0.2);
+ width: 0;
+ height: 0;
+ border: 1.2em solid #bbbbbb;
+ border-top-color: #f0f0f0;
+ border-bottom-color: #f0f0f0;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/static/hdalab/lib/vex/css/vex.css Thu Mar 05 13:45:11 2015 +0100
@@ -0,0 +1,335 @@
+@keyframes vex-fadein {
+ /* line 9, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 0;
+ }
+
+ /* line 11, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes vex-fadein {
+ /* line 9, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 0;
+ }
+
+ /* line 11, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes vex-fadein {
+ /* line 9, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 0;
+ }
+
+ /* line 11, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-ms-keyframes vex-fadein {
+ /* line 9, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 0;
+ }
+
+ /* line 11, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-o-keyframes vex-fadein {
+ /* line 9, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 0;
+ }
+
+ /* line 11, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes vex-fadeout {
+ /* line 16, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 1;
+ }
+
+ /* line 18, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 0;
+ }
+}
+
+@-webkit-keyframes vex-fadeout {
+ /* line 16, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 1;
+ }
+
+ /* line 18, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes vex-fadeout {
+ /* line 16, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 1;
+ }
+
+ /* line 18, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 0;
+ }
+}
+
+@-ms-keyframes vex-fadeout {
+ /* line 16, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 1;
+ }
+
+ /* line 18, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 0;
+ }
+}
+
+@-o-keyframes vex-fadeout {
+ /* line 16, ../sass/_keyframes.sass */
+ 0% {
+ opacity: 1;
+ }
+
+ /* line 18, ../sass/_keyframes.sass */
+ 100% {
+ opacity: 0;
+ }
+}
+
+@keyframes vex-rotation {
+ /* line 127, ../sass/_keyframes.sass */
+ 0% {
+ transform: rotate(0deg);
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ }
+
+ /* line 129, ../sass/_keyframes.sass */
+ 100% {
+ transform: rotate(359deg);
+ -webkit-transform: rotate(359deg);
+ -moz-transform: rotate(359deg);
+ -ms-transform: rotate(359deg);
+ -o-transform: rotate(359deg);
+ }
+}
+
+@-webkit-keyframes vex-rotation {
+ /* line 127, ../sass/_keyframes.sass */
+ 0% {
+ transform: rotate(0deg);
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ }
+
+ /* line 129, ../sass/_keyframes.sass */
+ 100% {
+ transform: rotate(359deg);
+ -webkit-transform: rotate(359deg);
+ -moz-transform: rotate(359deg);
+ -ms-transform: rotate(359deg);
+ -o-transform: rotate(359deg);
+ }
+}
+
+@-moz-keyframes vex-rotation {
+ /* line 127, ../sass/_keyframes.sass */
+ 0% {
+ transform: rotate(0deg);
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ }
+
+ /* line 129, ../sass/_keyframes.sass */
+ 100% {
+ transform: rotate(359deg);
+ -webkit-transform: rotate(359deg);
+ -moz-transform: rotate(359deg);
+ -ms-transform: rotate(359deg);
+ -o-transform: rotate(359deg);
+ }
+}
+
+@-ms-keyframes vex-rotation {
+ /* line 127, ../sass/_keyframes.sass */
+ 0% {
+ transform: rotate(0deg);
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ }
+
+ /* line 129, ../sass/_keyframes.sass */
+ 100% {
+ transform: rotate(359deg);
+ -webkit-transform: rotate(359deg);
+ -moz-transform: rotate(359deg);
+ -ms-transform: rotate(359deg);
+ -o-transform: rotate(359deg);
+ }
+}
+
+@-o-keyframes vex-rotation {
+ /* line 127, ../sass/_keyframes.sass */
+ 0% {
+ transform: rotate(0deg);
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ }
+
+ /* line 129, ../sass/_keyframes.sass */
+ 100% {
+ transform: rotate(359deg);
+ -webkit-transform: rotate(359deg);
+ -moz-transform: rotate(359deg);
+ -ms-transform: rotate(359deg);
+ -o-transform: rotate(359deg);
+ }
+}
+
+/* line 11, ../sass/vex.sass */
+.vex, .vex *, .vex *:before, .vex *:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+/* line 14, ../sass/vex.sass */
+.vex {
+ position: fixed;
+ overflow: auto;
+ -webkit-overflow-scrolling: touch;
+ z-index: 1111;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+}
+
+/* line 25, ../sass/vex.sass */
+.vex-overlay {
+ background: black;
+ filter: alpha(opacity=40);
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
+}
+
+/* line 30, ../sass/vex.sass */
+.vex-overlay {
+ animation: vex-fadein 0.5s;
+ -webkit-animation: vex-fadein 0.5s;
+ -moz-animation: vex-fadein 0.5s;
+ -ms-animation: vex-fadein 0.5s;
+ -o-animation: vex-fadein 0.5s;
+ -webkit-backface-visibility: hidden;
+ position: fixed;
+ background: rgba(0, 0, 0, 0.4);
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+}
+/* line 39, ../sass/vex.sass */
+.vex.vex-closing .vex-overlay {
+ animation: vex-fadeout 0.5s;
+ -webkit-animation: vex-fadeout 0.5s;
+ -moz-animation: vex-fadeout 0.5s;
+ -ms-animation: vex-fadeout 0.5s;
+ -o-animation: vex-fadeout 0.5s;
+ -webkit-backface-visibility: hidden;
+}
+
+/* line 42, ../sass/vex.sass */
+.vex-content {
+ animation: vex-fadein 0.5s;
+ -webkit-animation: vex-fadein 0.5s;
+ -moz-animation: vex-fadein 0.5s;
+ -ms-animation: vex-fadein 0.5s;
+ -o-animation: vex-fadein 0.5s;
+ -webkit-backface-visibility: hidden;
+ background: white;
+}
+/* line 46, ../sass/vex.sass */
+.vex.vex-closing .vex-content {
+ animation: vex-fadeout 0.5s;
+ -webkit-animation: vex-fadeout 0.5s;
+ -moz-animation: vex-fadeout 0.5s;
+ -ms-animation: vex-fadeout 0.5s;
+ -o-animation: vex-fadeout 0.5s;
+ -webkit-backface-visibility: hidden;
+}
+
+/* line 49, ../sass/vex.sass */
+.vex-close:before {
+ font-family: Arial, sans-serif;
+ content: "\00D7";
+}
+
+/* line 53, ../sass/vex.sass */
+.vex-dialog-form {
+ margin: 0;
+}
+
+/* line 56, ../sass/vex.sass */
+.vex-dialog-button {
+ -webkit-appearance: none;
+ cursor: pointer;
+}
+
+/* line 60, ../sass/vex.sass */
+.vex-loading-spinner {
+ animation: vex-rotation 0.7s linear infinite;
+ -webkit-animation: vex-rotation 0.7s linear infinite;
+ -moz-animation: vex-rotation 0.7s linear infinite;
+ -ms-animation: vex-rotation 0.7s linear infinite;
+ -o-animation: vex-rotation 0.7s linear infinite;
+ -webkit-backface-visibility: hidden;
+ -webkit-box-shadow: 0 0 1em rgba(0, 0, 0, 0.1);
+ -moz-box-shadow: 0 0 1em rgba(0, 0, 0, 0.1);
+ box-shadow: 0 0 1em rgba(0, 0, 0, 0.1);
+ position: fixed;
+ z-index: 1112;
+ margin: auto;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ height: 2em;
+ width: 2em;
+ background: white;
+}
+
+/* line 76, ../sass/vex.sass */
+body.vex-open {
+ overflow: hidden;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/static/hdalab/lib/vex/js/vex.combined.min.js Thu Mar 05 13:45:11 2015 +0100
@@ -0,0 +1,2 @@
+/*! vex.js, vex.dialog.js 2.2.1 */
+(function(){var a;a=function(a){var b,c;return b=!1,a(function(){var d;return d=(document.body||document.documentElement).style,b=void 0!==d.animation||void 0!==d.WebkitAnimation||void 0!==d.MozAnimation||void 0!==d.MsAnimation||void 0!==d.OAnimation,a(window).bind("keyup.vex",function(a){return 27===a.keyCode?c.closeByEscape():void 0})}),c={globalID:1,animationEndEvent:"animationend webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend",baseClassNames:{vex:"vex",content:"vex-content",overlay:"vex-overlay",close:"vex-close",closing:"vex-closing",open:"vex-open"},defaultOptions:{content:"",showCloseButton:!0,escapeButtonCloses:!0,overlayClosesOnClick:!0,appendLocation:"body",className:"",css:{},overlayClassName:"",overlayCSS:{},contentClassName:"",contentCSS:{},closeClassName:"",closeCSS:{}},open:function(b){return b=a.extend({},c.defaultOptions,b),b.id=c.globalID,c.globalID+=1,b.$vex=a("<div>").addClass(c.baseClassNames.vex).addClass(b.className).css(b.css).data({vex:b}),b.$vexOverlay=a("<div>").addClass(c.baseClassNames.overlay).addClass(b.overlayClassName).css(b.overlayCSS).data({vex:b}),b.overlayClosesOnClick&&b.$vexOverlay.bind("click.vex",function(b){return b.target===this?c.close(a(this).data().vex.id):void 0}),b.$vex.append(b.$vexOverlay),b.$vexContent=a("<div>").addClass(c.baseClassNames.content).addClass(b.contentClassName).css(b.contentCSS).append(b.content).data({vex:b}),b.$vex.append(b.$vexContent),b.showCloseButton&&(b.$closeButton=a("<div>").addClass(c.baseClassNames.close).addClass(b.closeClassName).css(b.closeCSS).data({vex:b}).bind("click.vex",function(){return c.close(a(this).data().vex.id)}),b.$vexContent.append(b.$closeButton)),a(b.appendLocation).append(b.$vex),c.setupBodyClassName(b.$vex),b.afterOpen&&b.afterOpen(b.$vexContent,b),setTimeout(function(){return b.$vexContent.trigger("vexOpen",b)},0),b.$vexContent},getAllVexes:function(){return a("."+c.baseClassNames.vex+':not(".'+c.baseClassNames.closing+'") .'+c.baseClassNames.content)},getVexByID:function(b){return c.getAllVexes().filter(function(){return a(this).data().vex.id===b})},close:function(a){var b;if(!a){if(b=c.getAllVexes().last(),!b.length)return!1;a=b.data().vex.id}return c.closeByID(a)},closeAll:function(){var b;return b=c.getAllVexes().map(function(){return a(this).data().vex.id}).toArray(),(null!=b?b.length:void 0)?(a.each(b.reverse(),function(a,b){return c.closeByID(b)}),!0):!1},closeByID:function(d){var e,f,g,h,i;return f=c.getVexByID(d),f.length?(e=f.data().vex.$vex,i=a.extend({},f.data().vex),g=function(){return i.beforeClose?i.beforeClose(f,i):void 0},h=function(){return f.trigger("vexClose",i),e.remove(),a("body").trigger("vexAfterClose",i),i.afterClose?i.afterClose(f,i):void 0},b?(g(),e.unbind(c.animationEndEvent).bind(c.animationEndEvent,function(){return h()}).addClass(c.baseClassNames.closing)):(g(),h()),!0):void 0},closeByEscape:function(){var b,d,e;return e=c.getAllVexes().map(function(){return a(this).data().vex.id}).toArray(),(null!=e?e.length:void 0)?(d=Math.max.apply(Math,e),b=c.getVexByID(d),b.data().vex.escapeButtonCloses!==!0?!1:c.closeByID(d)):!1},setupBodyClassName:function(){return a("body").bind("vexOpen.vex",function(){return a("body").addClass(c.baseClassNames.open)}).bind("vexAfterClose.vex",function(){return c.getAllVexes().length?void 0:a("body").removeClass(c.baseClassNames.open)})},hideLoading:function(){return a(".vex-loading-spinner").remove()},showLoading:function(){return c.hideLoading(),a("body").append('<div class="vex-loading-spinner '+c.defaultOptions.className+'"></div>')}}},"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):window.vex=a(jQuery)}).call(this),function(){var a;a=function(a,b){var c,d;return null==b?a.error("Vex is required to use vex.dialog"):(c=function(b){var c;return c={},a.each(b.serializeArray(),function(){return c[this.name]?(c[this.name].push||(c[this.name]=[c[this.name]]),c[this.name].push(this.value||"")):c[this.name]=this.value||""}),c},d={},d.buttons={YES:{text:"OK",type:"submit",className:"vex-dialog-button-primary"},NO:{text:"Cancel",type:"button",className:"vex-dialog-button-secondary",click:function(a){return a.data().vex.value=!1,b.close(a.data().vex.id)}}},d.defaultOptions={callback:function(){},afterOpen:function(){},message:"Message",input:'<input name="vex" type="hidden" value="_vex-empty-value" />',value:!1,buttons:[d.buttons.YES,d.buttons.NO],showCloseButton:!1,onSubmit:function(e){var f,g;return f=a(this),g=f.parent(),e.preventDefault(),e.stopPropagation(),g.data().vex.value=d.getFormValueOnSubmit(c(f)),b.close(g.data().vex.id)},focusFirstInput:!0},d.defaultAlertOptions={message:"Alert",buttons:[d.buttons.YES]},d.defaultConfirmOptions={message:"Confirm"},d.open=function(c){var e;return c=a.extend({},b.defaultOptions,d.defaultOptions,c),c.content=d.buildDialogForm(c),c.beforeClose=function(a){return c.callback(a.data().vex.value)},e=b.open(c),c.focusFirstInput&&e.find('input[type="submit"], textarea, input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="email"], input[type="month"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], input[type="week"]').first().focus(),e},d.alert=function(b){return"string"==typeof b&&(b={message:b}),b=a.extend({},d.defaultAlertOptions,b),d.open(b)},d.confirm=function(b){return"string"==typeof b?a.error("dialog.confirm(options) requires options.callback."):(b=a.extend({},d.defaultConfirmOptions,b),d.open(b))},d.prompt=function(b){var c;return"string"==typeof b?a.error("dialog.prompt(options) requires options.callback."):(c={message:'<label for="vex">'+(b.label||"Prompt:")+"</label>",input:'<input name="vex" type="text" class="vex-dialog-prompt-input" placeholder="'+(b.placeholder||"")+'" value="'+(b.value||"")+'" />'},b=a.extend({},c,b),d.open(b))},d.buildDialogForm=function(b){var c,e,f;return c=a('<form class="vex-dialog-form" />'),f=a('<div class="vex-dialog-message" />'),e=a('<div class="vex-dialog-input" />'),c.append(f.append(b.message)).append(e.append(b.input)).append(d.buttonsToDOM(b.buttons)).bind("submit.vex",b.onSubmit),c},d.getFormValueOnSubmit=function(a){return a.vex||""===a.vex?"_vex-empty-value"===a.vex?!0:a.vex:a},d.buttonsToDOM=function(c){var d;return d=a('<div class="vex-dialog-buttons" />'),a.each(c,function(e,f){var g;return g=a('<input type="'+f.type+'" />').val(f.text).addClass(f.className+" vex-dialog-button "+(0===e?"vex-first ":"")+(e===c.length-1?"vex-last ":"")).bind("click.vex",function(c){return f.click?f.click(a(this).parents("."+b.baseClassNames.content),c):void 0}),g.appendTo(d)}),d},d)},"function"==typeof define&&define.amd?define(["jquery","vex"],a):"object"==typeof exports?module.exports=a(require("jquery"),require("vex")):window.vex.dialog=a(window.jQuery,window.vex)}.call(this);
\ No newline at end of file
--- a/src/hdalab/templates/editorial/manage_renkans.html Wed Mar 04 15:24:23 2015 +0100
+++ b/src/hdalab/templates/editorial/manage_renkans.html Thu Mar 05 13:45:11 2015 +0100
@@ -11,17 +11,27 @@
<link rel="stylesheet" type="text/css" href="{% static 'hdalab/css/index.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'hdalab/css/ui-lightness/jquery-ui-1.10.4.min.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'hdalab/css/profile.css' %}" />
+ <link rel="stylesheet" type="text/css" href="{% static 'hdalab/lib/vex/css/vex.css' %}" />
+ <link rel="stylesheet" type="text/css" href="{% static 'hdalab/lib/vex/css/vex-theme-os.css' %}" />
{% endblock %}
{% block js_import %}
{{block.super}}
<script src="{% static 'hdalab/lib/jquery-ui-1.10.4.min.js' %}"></script>
-<script src="{% static 'hdalab/js/manage.js' %}"></script>
+<script src="{% static 'hdalab/lib/vex/js/vex.combined.min.js' %}"></script>
+<script>vex.defaultOptions.className = 'vex-theme-os';</script>
<script src="{% static 'hdalab/js/renkan-search.js' %}"></script>
<script type="text/javascript">
var favorite = {{favorite}};
initSearch(favorite);
+
+ var renkanActionMessages = {
+ publish : '{% trans "Are you sure you want to PUBLISH this renkan ?" %}',
+ unpublish: '{% trans "Are you sure you want to UNPUBLISH this renkan ?" %}',
+ reject : '{% trans "Are you sure you want to REJECT this renkan ?" %}'
+ };
</script>
+<script src="{% static 'hdalab/js/manage.js' %}"></script>
{% endblock %}
{% block main_content %}
@@ -76,9 +86,10 @@
<form action="{% url 'renkan_moderate' rk_id=r.rk_id %}" method="post">
{% csrf_token %}
<input type="hidden" name="next" value="{% url 'manage_renkans' %}" />
- {% if hr.state == 2 or hr.state == 4 %}<button name="state" value="3" title="{% trans 'publish renkan' %}" class="renkan-basic-action" onclick="return confirm('{% trans "Are you sure you want to PUBLISH this renkan ?" %}');"><span class="ui-icon ui-icon-unlocked"></button>
- {% else %}<button name="state" title="{% trans 'unpublish renkan' %}" value="1" class="renkan-basic-action" onclick="return confirm('{% trans "Are you sure you want to UNPUBLISH this renkan ?" %}');"><span class="ui-icon ui-icon-locked"></button>{% endif %}
- {% if hr.state != 4 %}<button name="state" title="{% trans 'reject renkan' %}" value="4" class="renkan-basic-action" onclick="return confirm('{% trans "Are you sure you want to REJECT this renkan ?" %}');" ><span class="ui-icon ui-icon-close"></span></button>{% endif %}
+ <input type="hidden" name="message" value="" class="action-message"/>
+ {% if hr.state == 2 or hr.state == 4 %}<button name="state" value="3" title="{% trans 'publish renkan' %}" class="renkan-basic-action renkan-publish-action" ><span class="ui-icon ui-icon-unlocked"></button>
+ {% else %}<button name="state" title="{% trans 'unpublish renkan' %}" value="1" class="renkan-basic-action renkan-unpublish-action"><span class="ui-icon ui-icon-locked"></button>{% endif %}
+ {% if hr.state != 4 %}<button name="state" title="{% trans 'reject renkan' %}" value="4" class="renkan-basic-action renkan-reject-action" ><span class="ui-icon ui-icon-close"></span></button>{% endif %}
</form>
</td>
</tr>
--- a/src/hdalab/templates/mails/published_renkan.html Wed Mar 04 15:24:23 2015 +0100
+++ b/src/hdalab/templates/mails/published_renkan.html Thu Mar 05 13:45:11 2015 +0100
@@ -192,7 +192,7 @@
<tr>
<td>
<p>Bonjour,</p>
- <p>Votre Renkan intitulé {{ renkan_state.renkan.renkan.title}} a été publié.</p>
+ <p>Votre Renkan intitulé "{{ renkan_state.renkan.renkan.title}}"" a été publié.</p>
<p>Vous pouvez le retrouver à l'url suivante: <a href="{{WEB_URL}}{% url 'renkan_view' %}?rk_id={{ renkan_state.renkan.renkan.rk_id }}">{{WEB_URL}}{% url 'renkan_view' %}?rk_id={{ renkan_state.renkan.renkan.rk_id }}</a>.</p>
</td>
</tr>
--- a/src/hdalab/templates/mails/published_renkan.txt Wed Mar 04 15:24:23 2015 +0100
+++ b/src/hdalab/templates/mails/published_renkan.txt Thu Mar 05 13:45:11 2015 +0100
@@ -1,4 +1,4 @@
Bonjour,
-Votre Renkan intitulé {{ renkan_state.renkan.renkan.title}} a été publié.
+Votre Renkan intitulé "{{ renkan_state.renkan.renkan.title}}" a été publié.
Vous pouvez le retrouver à l'url suivante: {{WEB_URL}}{% url 'renkan_view' %}?rk_id={{ renkan_state.renkan.renkan.rk_id }}
--- a/src/hdalab/templates/mails/rejected_renkan.html Wed Mar 04 15:24:23 2015 +0100
+++ b/src/hdalab/templates/mails/rejected_renkan.html Thu Mar 05 13:45:11 2015 +0100
@@ -192,7 +192,7 @@
<tr>
<td>
<p>Bonjour,</p>
- <p>Votre Renkan intitulé {{ renkan_state.renkan.renkan.title}} a été rejeté.</p>
+ <p>Votre Renkan intitulé "{{renkan_state.renkan.renkan.title}}" a été rejeté.</p>
{% if renkan_state.message %}
<p>Avec le message suivant : {{ renkan_state.message }}</p>
{% endif %}
--- a/src/hdalab/templates/mails/rejected_renkan.txt Wed Mar 04 15:24:23 2015 +0100
+++ b/src/hdalab/templates/mails/rejected_renkan.txt Thu Mar 05 13:45:11 2015 +0100
@@ -1,5 +1,5 @@
Bonjour,
-Votre Renkan intitulé {{ renkan_state.renkan.renkan.title}} a été rejeté.
+Votre Renkan intitulé "{{ renkan_state.renkan.renkan.title}}" a été rejeté.
{% if renkan_state.message %}
Avec le message suivant : {{ renkan_state.message }}
{% endif %}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/templates/mails/unpublished_renkan.html Thu Mar 05 13:45:11 2015 +0100
@@ -0,0 +1,213 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<!-- Template from https://github.com/leemunroe/html-email-template -->
+<head>
+<meta name="viewport" content="width=device-width" />
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Renkan dépublié</title>
+<style>
+/* -------------------------------------
+ GLOBAL
+------------------------------------- */
+* {
+ margin: 0;
+ padding: 0;
+ font-family: "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
+ font-size: 100%;
+ line-height: 1.6;
+}
+
+img {
+ max-width: 100%;
+}
+
+body {
+ -webkit-font-smoothing: antialiased;
+ -webkit-text-size-adjust: none;
+ width: 100%!important;
+ height: 100%;
+}
+
+
+/* -------------------------------------
+ ELEMENTS
+------------------------------------- */
+a {
+ color: #348eda;
+}
+
+.btn-primary {
+ text-decoration: none;
+ color: #FFF;
+ background-color: #348eda;
+ border: solid #348eda;
+ border-width: 10px 20px;
+ line-height: 2;
+ font-weight: bold;
+ margin-right: 10px;
+ text-align: center;
+ cursor: pointer;
+ display: inline-block;
+ border-radius: 25px;
+}
+
+.btn-secondary {
+ text-decoration: none;
+ color: #FFF;
+ background-color: #aaa;
+ border: solid #aaa;
+ border-width: 10px 20px;
+ line-height: 2;
+ font-weight: bold;
+ margin-right: 10px;
+ text-align: center;
+ cursor: pointer;
+ display: inline-block;
+ border-radius: 25px;
+}
+
+.last {
+ margin-bottom: 0;
+}
+
+.first {
+ margin-top: 0;
+}
+
+.padding {
+ padding: 10px 0;
+}
+
+
+/* -------------------------------------
+ BODY
+------------------------------------- */
+table.body-wrap {
+ width: 100%;
+ padding: 20px;
+}
+
+table.body-wrap .container {
+ border: 1px solid #f0f0f0;
+}
+
+
+/* -------------------------------------
+ FOOTER
+------------------------------------- */
+table.footer-wrap {
+ width: 100%;
+ clear: both!important;
+}
+
+.footer-wrap .container p {
+ font-size: 12px;
+ color: #666;
+
+}
+
+table.footer-wrap a {
+ color: #999;
+}
+
+
+/* -------------------------------------
+ TYPOGRAPHY
+------------------------------------- */
+h1, h2, h3 {
+ font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
+ line-height: 1.1;
+ margin-bottom: 15px;
+ color: #000;
+ margin: 40px 0 10px;
+ line-height: 1.2;
+ font-weight: 200;
+}
+
+h1 {
+ font-size: 36px;
+}
+h2 {
+ font-size: 28px;
+}
+h3 {
+ font-size: 22px;
+}
+
+p, ul, ol {
+ margin-bottom: 10px;
+ font-weight: normal;
+ font-size: 14px;
+}
+
+ul li, ol li {
+ margin-left: 5px;
+ list-style-position: inside;
+}
+
+/* ---------------------------------------------------
+ RESPONSIVENESS
+
+------------------------------------------------------ */
+
+/* Set a max-width, and make it display as block so it will automatically stretch to that width, but will also shrink down on a phone or something */
+.container {
+ display: block!important;
+ max-width: 600px!important;
+ margin: 0 auto!important; /* makes it centered */
+ clear: both!important;
+}
+
+/* Set the padding on the td rather than the div for Outlook compatibility */
+.body-wrap .container {
+ padding: 20px;
+}
+
+/* This should also be a block element, so that it will fill 100% of the .container */
+.content {
+ max-width: 600px;
+ margin: 0 auto;
+ display: block;
+}
+
+/* Let's make sure tables in the content area are 100% wide */
+.content table {
+ width: 100%;
+}
+
+</style>
+</head>
+
+<body bgcolor="#f6f6f6">
+
+<!-- body -->
+<table class="body-wrap">
+ <tr>
+ <td></td>
+ <td class="container" bgcolor="#FFFFFF">
+
+ <!-- content -->
+ <div class="content">
+ <table>
+ <tr>
+ <td>
+ <p>Bonjour,</p>
+ <p>Votre Renkan intitulé "{{ renkan_state.renkan.renkan.title}}" a été dépublié.</p>
+ {% if renkan_state.message %}
+ <p>Avec le message suivant : {{ renkan_state.message }}</p>
+ {% endif %}
+ <p></p>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <!-- /content -->
+
+ </td>
+ <td></td>
+ </tr>
+</table>
+<!-- /body -->
+
+</body>
+</html>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/templates/mails/unpublished_renkan.txt Thu Mar 05 13:45:11 2015 +0100
@@ -0,0 +1,5 @@
+Bonjour,
+Votre Renkan intitulé "{{ renkan_state.renkan.renkan.title}}" a été dépublié.
+{% if renkan_state.message %}
+Avec le message suivant : {{ renkan_state.message }}
+{% endif %}
\ No newline at end of file