branch develop updated (41b49632 -> be707f0b)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git from 41b49632 Merge tag '3.0.1' into develop adds b04aa221 modification de la version de pollen => 3.0.2 adds bee58e82 A jout du fuseau horaire en configuration dans le formatage des dates pour les courriels adds c04bb083 correction de l'import CSV d'une liste de votants ( ref #159) + correction du chargement de la page adds aae34ef7 mise à jour du change log adds d49640ee Merge branch 'hotfix/3.0.2' new d8d09435 Merge tag '3.0.2' into develop new be707f0b Merge tag '3.0.2' into develop The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit be707f0bb226784441c8df269568235ee6540b8a Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 18 16:29:37 2017 +0200 Merge tag '3.0.2' into develop Pollen 3.0.2 # Conflicts: # pollen-persistence/pom.xml # pollen-rest-api/pom.xml # pollen-services/pom.xml # pollen-services/src/main/config/PollenServices.ini # pollen-services/src/main/java/org/chorem/pollen/services/PollenUIContext.java # pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServicesConfig.java # pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java # pollen-ui-riot-js/package.json # pollen-ui-riot-js/pom.xml # pollen-ui-riot-js/src/main/web/i18n/en.json # pollen-ui-riot-js/src/main/web/i18n/fr.json # pollen-ui-riot-js/src/main/web/tag/favoriteList/FavoriteList.tag.html # pollen-votecounting-aggregator/pom.xml # pollen-votecounting-api/pom.xml # pollen-votecounting-borda/pom.xml # pollen-votecounting-condorcet/pom.xml # pollen-votecounting-coombs/pom.xml # pollen-votecounting-cumulative/pom.xml # pollen-votecounting-instant-runoff/pom.xml # pollen-votecounting-normal/pom.xml # pollen-votecounting-number/pom.xml # pom.xml commit d8d09435002174c66da77edf19d1176c8d207dc2 Merge: 41b49632 d49640ee Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 18 16:29:06 2017 +0200 Merge tag '3.0.2' into develop Pollen 3.0.2 # Conflicts: # pollen-persistence/pom.xml # pollen-rest-api/pom.xml # pollen-services/pom.xml # pollen-services/src/main/config/PollenServices.ini # pollen-services/src/main/java/org/chorem/pollen/services/PollenUIContext.java # pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServicesConfig.java # pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java # pollen-ui-riot-js/package.json # pollen-ui-riot-js/pom.xml # pollen-ui-riot-js/src/main/web/i18n/en.json # pollen-ui-riot-js/src/main/web/i18n/fr.json # pollen-ui-riot-js/src/main/web/tag/favoriteList/FavoriteList.tag.html # pollen-votecounting-aggregator/pom.xml # pollen-votecounting-api/pom.xml # pollen-votecounting-borda/pom.xml # pollen-votecounting-condorcet/pom.xml # pollen-votecounting-coombs/pom.xml # pollen-votecounting-cumulative/pom.xml # pollen-votecounting-instant-runoff/pom.xml # pollen-votecounting-normal/pom.xml # pollen-votecounting-number/pom.xml # pom.xml Summary of changes: CHANGELOG | 3 + pollen-services/src/main/config/PollenServices.ini | 6 ++ .../chorem/pollen/services/PollenUIContext.java | 10 +++ .../services/config/PollenServicesConfig.java | 5 ++ .../service/FavoriteListImportFromFile.java | 26 +++---- .../services/service/mail/AbstractReportEmail.java | 5 +- .../service/mail/AbstractReportForAdminEmail.java | 5 +- .../services/service/mail/AbstractVoteEmail.java | 5 +- .../services/service/mail/ChoiceAddedEmail.java | 5 +- .../services/service/mail/ChoiceDeletedEmail.java | 5 +- .../services/service/mail/ChoiceEditedEmail.java | 5 +- .../services/service/mail/ChoiceReportEmail.java | 5 +- .../service/mail/ChoiceReportForAdminEmail.java | 5 +- .../services/service/mail/CommentAddedEmail.java | 5 +- .../services/service/mail/CommentDeletedEmail.java | 5 +- .../services/service/mail/CommentEditedEmail.java | 5 +- .../services/service/mail/CommentReportEmail.java | 5 +- .../service/mail/CommentReportForAdminEmail.java | 5 +- .../pollen/services/service/mail/EmailService.java | 80 ++++++++++++---------- .../service/mail/ExceedingMaxVotersEmail.java | 5 +- .../services/service/mail/FeedbackEmail.java | 5 +- .../services/service/mail/LostPasswordEmail.java | 5 +- .../service/mail/PollChoicePeriodEndedEmail.java | 5 +- .../service/mail/PollChoicePeriodStartedEmail.java | 5 +- .../services/service/mail/PollClosedEmail.java | 5 +- .../services/service/mail/PollCreatedEmail.java | 5 +- .../service/mail/PollEndReminderEmail.java | 5 +- .../services/service/mail/PollInvitationEmail.java | 5 +- .../services/service/mail/PollReportEmail.java | 5 +- .../service/mail/PollReportForAdminEmail.java | 5 +- .../service/mail/PollVotePeriodEndedEmail.java | 5 +- .../service/mail/PollVotePeriodStartedEmail.java | 5 +- .../service/mail/PollVoteReminderEmail.java | 5 +- .../pollen/services/service/mail/PollenMail.java | 11 ++- .../service/mail/ResendValidationEmail.java | 5 +- .../mail/RestrictedPollInvitationEmail.java | 5 +- .../service/mail/UserAccountCreatedEmail.java | 5 +- .../mail/UserAccountCreatedFromProviderEmail.java | 5 +- .../service/mail/UserAccountDeletedEmail.java | 5 +- .../service/mail/UserAccountEditedEmail.java | 5 +- .../mail/UserAccountEmailAddressAddedEmail.java | 5 +- .../mail/UserAccountEmailValidatedEmail.java | 5 +- .../mail/UserAccountPasswordChangedEmail.java | 5 +- .../services/service/mail/VoteAddedEmail.java | 5 +- .../services/service/mail/VoteDeletedEmail.java | 5 +- .../services/service/mail/VoteEditedEmail.java | 5 +- .../i18n/pollen-services_en_GB.properties | 1 + .../i18n/pollen-services_fr_FR.properties | 1 + .../web/tag/favoriteList/FavoriteList.tag.html | 32 ++++----- 49 files changed, 221 insertions(+), 149 deletions(-) -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit d8d09435002174c66da77edf19d1176c8d207dc2 Merge: 41b49632 d49640ee Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 18 16:29:06 2017 +0200 Merge tag '3.0.2' into develop Pollen 3.0.2 # Conflicts: # pollen-persistence/pom.xml # pollen-rest-api/pom.xml # pollen-services/pom.xml # pollen-services/src/main/config/PollenServices.ini # pollen-services/src/main/java/org/chorem/pollen/services/PollenUIContext.java # pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServicesConfig.java # pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java # pollen-ui-riot-js/package.json # pollen-ui-riot-js/pom.xml # pollen-ui-riot-js/src/main/web/i18n/en.json # pollen-ui-riot-js/src/main/web/i18n/fr.json # pollen-ui-riot-js/src/main/web/tag/favoriteList/FavoriteList.tag.html # pollen-votecounting-aggregator/pom.xml # pollen-votecounting-api/pom.xml # pollen-votecounting-borda/pom.xml # pollen-votecounting-condorcet/pom.xml # pollen-votecounting-coombs/pom.xml # pollen-votecounting-cumulative/pom.xml # pollen-votecounting-instant-runoff/pom.xml # pollen-votecounting-normal/pom.xml # pollen-votecounting-number/pom.xml # pom.xml CHANGELOG | 3 + pollen-services/src/main/config/PollenServices.ini | 6 ++ .../chorem/pollen/services/PollenUIContext.java | 10 +++ .../services/config/PollenServicesConfig.java | 5 ++ .../service/FavoriteListImportFromFile.java | 26 ++++---- .../services/service/mail/AbstractReportEmail.java | 5 +- .../service/mail/AbstractReportForAdminEmail.java | 5 +- .../services/service/mail/AbstractVoteEmail.java | 5 +- .../services/service/mail/ChoiceAddedEmail.java | 5 +- .../services/service/mail/ChoiceDeletedEmail.java | 5 +- .../services/service/mail/ChoiceEditedEmail.java | 5 +- .../services/service/mail/ChoiceReportEmail.java | 5 +- .../service/mail/ChoiceReportForAdminEmail.java | 5 +- .../services/service/mail/CommentAddedEmail.java | 5 +- .../services/service/mail/CommentDeletedEmail.java | 5 +- .../services/service/mail/CommentEditedEmail.java | 5 +- .../services/service/mail/CommentReportEmail.java | 5 +- .../service/mail/CommentReportForAdminEmail.java | 5 +- .../pollen/services/service/mail/EmailService.java | 76 ++++++++++++---------- .../services/service/mail/FeedbackEmail.java | 5 +- .../services/service/mail/LostPasswordEmail.java | 5 +- .../service/mail/PollChoicePeriodEndedEmail.java | 5 +- .../service/mail/PollChoicePeriodStartedEmail.java | 5 +- .../services/service/mail/PollClosedEmail.java | 5 +- .../services/service/mail/PollCreatedEmail.java | 5 +- .../service/mail/PollEndReminderEmail.java | 5 +- .../services/service/mail/PollInvitationEmail.java | 5 +- .../services/service/mail/PollReportEmail.java | 5 +- .../service/mail/PollReportForAdminEmail.java | 5 +- .../service/mail/PollVotePeriodEndedEmail.java | 5 +- .../service/mail/PollVotePeriodStartedEmail.java | 5 +- .../service/mail/PollVoteReminderEmail.java | 5 +- .../pollen/services/service/mail/PollenMail.java | 11 +++- .../service/mail/ResendValidationEmail.java | 5 +- .../mail/RestrictedPollInvitationEmail.java | 5 +- .../service/mail/UserAccountCreatedEmail.java | 5 +- .../mail/UserAccountCreatedFromProviderEmail.java | 5 +- .../service/mail/UserAccountDeletedEmail.java | 5 +- .../service/mail/UserAccountEditedEmail.java | 5 +- .../mail/UserAccountEmailValidatedEmail.java | 5 +- .../mail/UserAccountPasswordChangedEmail.java | 5 +- .../services/service/mail/VoteAddedEmail.java | 5 +- .../services/service/mail/VoteDeletedEmail.java | 5 +- .../services/service/mail/VoteEditedEmail.java | 5 +- .../i18n/pollen-services_en_GB.properties | 1 + .../i18n/pollen-services_fr_FR.properties | 1 + .../web/tag/favoriteList/FavoriteList.tag.html | 32 ++++----- 47 files changed, 213 insertions(+), 143 deletions(-) diff --cc pollen-services/src/main/config/PollenServices.ini index 7705da6c,cad9df6f..7f9aa169 --- a/pollen-services/src/main/config/PollenServices.ini +++ b/pollen-services/src/main/config/PollenServices.ini @@@ -199,20 -207,8 +199,26 @@@ key = pollen.feedback.local type = String defaultValue = en + [option defaultTimeZoneId] + description = pollen.configuration.defaultTimeZoneId + key = pollen.default.timeZoneId + type = String -defaultValue = Europe/Paris ++defaultValue = Europe/Paris ++ +[option maxVoters] +description = pollen.configuration.maxVoters +key = pollen.default.maxVoters +type = int +defaultValue = 0 + +[option userConnectedRequired] +description = pollen.configuration.userConnectedRequired +key = pollen.default.userConnectedRequired +type = boolean +defaultValue = false + +[option usersCanCreatePoll] +description = pollen.configuration.usersCanCreatePoll +key = pollen.default.usersCanCreatePoll +type = org.chorem.pollen.services.bean.UsersRight +defaultValue = ALL_USERS diff --cc pollen-services/src/main/java/org/chorem/pollen/services/PollenUIContext.java index b9bc6aeb,947714cc..d22d20db --- a/pollen-services/src/main/java/org/chorem/pollen/services/PollenUIContext.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/PollenUIContext.java @@@ -44,8 -44,8 +44,10 @@@ public class PollenUIContext implement private String profileUrl; + private String offersUrl; + + private String timeZone; + public String getUiEndPoint() { return uiEndPoint; } @@@ -110,11 -110,11 +112,19 @@@ this.profileUrl = profileUrl; } + public String getOffersUrl() { + return offersUrl; + } + + public void setOffersUrl(String offersUrl) { + this.offersUrl = offersUrl; + } ++ + public String getTimeZone() { + return timeZone; + } + + public void setTimeZone(String timeZone) { + this.timeZone = timeZone; + } } diff --cc pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServicesConfig.java index 4c8c3510,ba08d417..c71f5b3c --- a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServicesConfig.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServicesConfig.java @@@ -160,8 -160,7 +161,12 @@@ public class PollenServicesConfig exten return Locale.forLanguageTag(get().getOption(PollenServicesConfigOption.LOCALE_FEEDBACK.getKey())); } + public TimeZone getDefaultTimeZone() { + return TimeZone.getTimeZone(get().getOption(PollenServicesConfigOption.DEFAULT_TIME_ZONE_ID.getKey())); + } ++ + @Override + public UsersRight getUsersCanCreatePoll() { + return UsersRight.valueOf(get().getOption(PollenServicesConfigOption.USERS_CAN_CREATE_POLL.getKey())); + } } diff --cc pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java index f0e8d62c,aae2777f..acf952c5 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java @@@ -227,9 -232,11 +233,9 @@@ public class EmailService extends Polle } public UserAccountCreatedEmail newUserAccountCreatedEmail(PollenUser user) { - UserAccountCreatedEmail email = new UserAccountCreatedEmail(getLocale()); + UserAccountCreatedEmail email = new UserAccountCreatedEmail(getLocale(), getTimeZone()); email.setUser(user); - email.setPollenUrl(getUIContext().getUiEndPoint()); - PollenEntityId<PollenUser> userId = getPollenEntityId(user); email.setValidateUrl(getPollenUIUrlRenderService().getUserValidateUrl(getUIContext().getUserValidateUrl(), userId.getReducedId(), @@@ -259,27 -266,16 +265,27 @@@ return email; } + public UserAccountEmailAddressAddedEmail newUserAccountEmailAddressAddedEmail(PollenUser user, + PollenUserEmailAddress emailAddress) { + UserAccountEmailAddressAddedEmail email = new UserAccountEmailAddressAddedEmail(getLocale()); + email.setUser(user); + PollenEntityId<PollenUser> userId = getPollenEntityId(user); + email.setValidateUrl(getPollenUIUrlRenderService().getUserValidateUrl(getUIContext().getUserValidateUrl(), + userId.getReducedId(), + emailAddress.getActivationToken().getToken())); + return email; + } + public UserAccountEmailValidatedEmail newUserAccountEmailValidatedEmail(PollenUser user) { - UserAccountEmailValidatedEmail email = new UserAccountEmailValidatedEmail(getLocale()); + UserAccountEmailValidatedEmail email = new UserAccountEmailValidatedEmail(getLocale(), getTimeZone()); email.setUser(user); + email.setPollenUrl(getUIContext().getUiEndPoint()); return email; } - public ResendValidationEmail newUserResendValidationEmail(PollenUser user) { + public ResendValidationEmail newUserResendValidationEmail(PollenUser user, PollenUserEmailAddress emailAddress) { - ResendValidationEmail email = new ResendValidationEmail(getLocale()); + ResendValidationEmail email = new ResendValidationEmail(getLocale(), getTimeZone()); email.setUser(user); - email.setPollenUrl(getUIContext().getUiEndPoint()); PollenEntityId<PollenUser> userId = getPollenEntityId(user); email.setValidateUrl(getPollenUIUrlRenderService().getUserValidateUrl(getUIContext().getUserValidateUrl(), diff --cc pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ResendValidationEmail.java index 2f4f5887,ddbc9321..1cbe08ea --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ResendValidationEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ResendValidationEmail.java @@@ -37,9 -38,10 +38,9 @@@ public class ResendValidationEmail exte private PollenUser user; private String validateUrl; - private String pollenUrl; - protected ResendValidationEmail(Locale locale) { - super(locale); + protected ResendValidationEmail(Locale locale, TimeZone timeZone) { + super(locale, timeZone); } @Override diff --cc pollen-services/src/main/java/org/chorem/pollen/services/service/mail/UserAccountCreatedEmail.java index 547d1fac,6f88a6ba..c97f44e3 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/UserAccountCreatedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/UserAccountCreatedEmail.java @@@ -37,9 -38,11 +38,9 @@@ public class UserAccountCreatedEmail ex private PollenUser user; private String validateUrl; - private String pollenUrl; - private String password; - protected UserAccountCreatedEmail(Locale locale) { - super(locale); + protected UserAccountCreatedEmail(Locale locale, TimeZone timeZone) { + super(locale, timeZone); } @Override -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit be707f0bb226784441c8df269568235ee6540b8a Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 18 16:29:37 2017 +0200 Merge tag '3.0.2' into develop Pollen 3.0.2 # Conflicts: # pollen-persistence/pom.xml # pollen-rest-api/pom.xml # pollen-services/pom.xml # pollen-services/src/main/config/PollenServices.ini # pollen-services/src/main/java/org/chorem/pollen/services/PollenUIContext.java # pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServicesConfig.java # pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java # pollen-ui-riot-js/package.json # pollen-ui-riot-js/pom.xml # pollen-ui-riot-js/src/main/web/i18n/en.json # pollen-ui-riot-js/src/main/web/i18n/fr.json # pollen-ui-riot-js/src/main/web/tag/favoriteList/FavoriteList.tag.html # pollen-votecounting-aggregator/pom.xml # pollen-votecounting-api/pom.xml # pollen-votecounting-borda/pom.xml # pollen-votecounting-condorcet/pom.xml # pollen-votecounting-coombs/pom.xml # pollen-votecounting-cumulative/pom.xml # pollen-votecounting-instant-runoff/pom.xml # pollen-votecounting-normal/pom.xml # pollen-votecounting-number/pom.xml # pom.xml --- .../java/org/chorem/pollen/services/service/mail/EmailService.java | 4 ++-- .../chorem/pollen/services/service/mail/ExceedingMaxVotersEmail.java | 5 +++-- .../services/service/mail/UserAccountEmailAddressAddedEmail.java | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java index acf952c5..389ea4a7 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java @@ -267,7 +267,7 @@ public class EmailService extends PollenServiceSupport { public UserAccountEmailAddressAddedEmail newUserAccountEmailAddressAddedEmail(PollenUser user, PollenUserEmailAddress emailAddress) { - UserAccountEmailAddressAddedEmail email = new UserAccountEmailAddressAddedEmail(getLocale()); + UserAccountEmailAddressAddedEmail email = new UserAccountEmailAddressAddedEmail(getLocale(), getTimeZone()); email.setUser(user); PollenEntityId<PollenUser> userId = getPollenEntityId(user); email.setValidateUrl(getPollenUIUrlRenderService().getUserValidateUrl(getUIContext().getUserValidateUrl(), @@ -630,7 +630,7 @@ public class EmailService extends PollenServiceSupport { } public ExceedingMaxVotersEmail newExceedingMaxVotersEmail(Poll poll, int maxVoters) { - ExceedingMaxVotersEmail email = new ExceedingMaxVotersEmail(getLocale()); + ExceedingMaxVotersEmail email = new ExceedingMaxVotersEmail(getLocale(), getTimeZone()); email.setPoll(poll); email.setMaxVoters(maxVoters); email.setOffersUrl(getUIContext().getOffersUrl()); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ExceedingMaxVotersEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ExceedingMaxVotersEmail.java index eb862893..54aa49a8 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ExceedingMaxVotersEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/ExceedingMaxVotersEmail.java @@ -25,6 +25,7 @@ import org.chorem.pollen.persistence.entity.Poll; import org.nuiton.i18n.I18n; import java.util.Locale; +import java.util.TimeZone; /** * Created on 4/30/14. @@ -38,8 +39,8 @@ public class ExceedingMaxVotersEmail extends PollenMail { private int maxVoters; private String offersUrl; - protected ExceedingMaxVotersEmail(Locale locale) { - super(locale); + protected ExceedingMaxVotersEmail(Locale locale, TimeZone timeZone) { + super(locale, timeZone); } @Override diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/UserAccountEmailAddressAddedEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/UserAccountEmailAddressAddedEmail.java index b61c28dc..69402fa7 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/UserAccountEmailAddressAddedEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/UserAccountEmailAddressAddedEmail.java @@ -25,6 +25,7 @@ import org.chorem.pollen.persistence.entity.PollenUser; import org.nuiton.i18n.I18n; import java.util.Locale; +import java.util.TimeZone; /** * @author Kevin Morin - morin@codelutin.com @@ -35,8 +36,8 @@ public class UserAccountEmailAddressAddedEmail extends PollenMail { private String validateUrl; - protected UserAccountEmailAddressAddedEmail(Locale locale) { - super(locale); + protected UserAccountEmailAddressAddedEmail(Locale locale, TimeZone timeZone) { + super(locale, timeZone); } @Override -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm