diff --git a/.classpath b/.classpath index 5237d0f..534b5e5 100644 --- a/.classpath +++ b/.classpath @@ -6,12 +6,6 @@ - - - - - - diff --git a/.project b/.project index 6293b7a..5779dc6 100644 --- a/.project +++ b/.project @@ -15,6 +15,11 @@ + + org.springframework.ide.eclipse.core.springbuilder + + + org.eclipse.m2e.core.maven2Builder @@ -22,6 +27,8 @@ + org.springframework.ide.eclipse.core.springnature + org.sonar.ide.eclipse.core.sonarNature org.eclipse.jdt.core.javanature org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.project.facet.core.nature diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index 7280518..ab15b79 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -3,4 +3,5 @@ encoding//src/main/java=UTF8 encoding//src/main/resources=UTF8 encoding//src/test/java=UTF8 encoding//src/test/resources=UTF8 +encoding//target/generated-sources/jaxb=UTF8 encoding/=UTF8 diff --git a/.settings/org.sonar.ide.eclipse.core.prefs b/.settings/org.sonar.ide.eclipse.core.prefs new file mode 100644 index 0000000..67b7d79 --- /dev/null +++ b/.settings/org.sonar.ide.eclipse.core.prefs @@ -0,0 +1,6 @@ +analyseLocally=false +eclipse.preferences.version=1 +extraProperties= +projectKey=fr.imirhil.april\:hebdobot +serverUrl=http\://localhost\:9000 +version=2 diff --git a/pom.xml b/pom.xml index 638c1ed..78cc4fc 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,5 @@ - + 4.0.0 fr.imirhil.april hebdobot @@ -7,11 +8,11 @@ scm:hg:file://${basedir} - 1.6 + 1.7 ${maven.compiler.source} UTF8 - 1.6.4 - 3.1.1.RELEASE + 1.7.12 + 4.1.7.RELEASE @@ -70,12 +71,12 @@ joda-time joda-time - 2.1 + 2.8.1 commons-io commons-io - 2.1 + 2.4 commons-lang @@ -85,23 +86,22 @@ javax.xml.bind jaxb-api - 2.2.6 + 2.2.12 - opensymphony + org.quartz-scheduler quartz - 1.6.5 - runtime + 2.2.1 org.apache.httpcomponents httpclient - 4.1.3 + 4.5 junit junit - 4.10 + 4.12 test @@ -118,7 +118,7 @@ org.scribe scribe - 1.3.0 + 1.3.7 org.springframework @@ -148,5 +148,10 @@ ${spring.version} runtime + + org.springframework.social + spring-social-twitter + 1.1.0.RELEASE + diff --git a/src/main/java/fr/imirhil/april/hebdobot/Job.java b/src/main/java/fr/imirhil/april/hebdobot/Job.java index 7653eb5..533cf6a 100644 --- a/src/main/java/fr/imirhil/april/hebdobot/Job.java +++ b/src/main/java/fr/imirhil/april/hebdobot/Job.java @@ -2,28 +2,30 @@ package fr.imirhil.april.hebdobot; import javax.annotation.Resource; +import org.springframework.social.twitter.api.impl.TwitterTemplate; + import fr.imirhil.april.hebdobot.irc.Bot; -import fr.imirhil.april.hebdobot.statusnet.IdentiCaClient; public class Job { @Resource private Bot bot; @Resource - private IdentiCaClient identiCaClient; - private String statusNetMessage; - private String ircMessage; + private TwitterTemplate twitterClient; + private String tweet; + private String irc; - public void setStatusNetMessage(String message) { - this.statusNetMessage = message; + public void setTweet(final String message) { + this.tweet = message; } - public void setIrcMessage(String message) { - this.ircMessage = message; + public void setIrc(final String message) { + this.irc = message; } private void notify(final int min) { - this.bot.sendMessage(String.format(this.ircMessage, min)); - this.identiCaClient.post(String.format(this.statusNetMessage, min)); + this.bot.sendMessage(String.format(this.irc, min)); + final String tweet = String.format(this.tweet, min); + this.twitterClient.timelineOperations().updateStatus(tweet); } public void at30() { diff --git a/src/main/java/fr/imirhil/april/hebdobot/OAuthRegistration.java b/src/main/java/fr/imirhil/april/hebdobot/OAuthRegistration.java new file mode 100644 index 0000000..1501bd6 --- /dev/null +++ b/src/main/java/fr/imirhil/april/hebdobot/OAuthRegistration.java @@ -0,0 +1,29 @@ +package fr.imirhil.april.hebdobot; + +import java.util.Scanner; + +import org.scribe.builder.ServiceBuilder; +import org.scribe.builder.api.TwitterApi; +import org.scribe.model.Token; +import org.scribe.model.Verifier; +import org.scribe.oauth.OAuthService; + +public class OAuthRegistration { + public static void main(final String args[]) throws Exception { + final OAuthService service = + new ServiceBuilder() + .provider(TwitterApi.class) + .apiKey("uCZMXbUWuda7a2RqqKd2yg") + .apiSecret( + "KUH2O77u5RJfqZ2rE8qV6Ak1HBKQRg70DUIVAXDr6oo") + .build(); + final Token requestToken = service.getRequestToken(); + final String authUrl = service.getAuthorizationUrl(requestToken); + System.out.println(authUrl); + + final String value = new Scanner(System.in).nextLine(); + final Verifier v = new Verifier(value); + final Token accessToken = service.getAccessToken(requestToken, v); + System.out.println(accessToken); + } +} diff --git a/src/main/java/fr/imirhil/april/hebdobot/irc/Bot.java b/src/main/java/fr/imirhil/april/hebdobot/irc/Bot.java index c40cc45..49e839f 100644 --- a/src/main/java/fr/imirhil/april/hebdobot/irc/Bot.java +++ b/src/main/java/fr/imirhil/april/hebdobot/irc/Bot.java @@ -28,8 +28,7 @@ public class Bot extends PircBot { private final int port; private final String channel; private Review review = null; - private final Collection listeners = - new LinkedList(); + private final Collection listeners = new LinkedList(); private final List handlers = new LinkedList(); public Bot(final String host, final int port, final String name, @@ -115,6 +114,7 @@ public class Bot extends PircBot { Bot.this.sendMessage(sender, "Pour terminer la réunion, tapez \"!fin\""); Bot.this.sendMessage("% Début de la réunion hebdomadaire"); + Bot.this.sendMessage("% rappel : toute ligne commençant par % sera considérée comme un commentaire et non prise en compte dans la synthèse"); return true; } }); @@ -141,6 +141,11 @@ public class Bot extends PircBot { Bot.this.sendMessage("% " + Bot.this.review.getOwner() + ", ne pas oublier d'ajouter le compte-rendu de la revue sur https://agir.april.org/issues/135"); + final String participants = StringUtils.join( + Bot.this.review.getParticipants(), " "); + Bot.this.sendMessage("% " + + participants + + ", pensez à noter votre bénévalo : http://www.april.org/my?action=benevalo"); Bot.this.sendMessage("% Fin de la revue hebdomadaire"); Bot.this.review = null; return true; @@ -161,11 +166,15 @@ public class Bot extends PircBot { return false; } - final CollectiveTopic topic = - new CollectiveTopic(message.replaceFirst("##", "") - .trim()); + final CollectiveTopic topic = new CollectiveTopic(message + .replaceFirst("##", "").trim()); Bot.this.review.begin(topic); Bot.this.sendMessage("Sujet collectif : " + topic.getTitle()); + if (topic.getTitle().toLowerCase().contains("bloquage")) { + Bot.this.sendMessage("% si rien à dire vous pouvez dire %ras"); + } else { + Bot.this.sendMessage("% 1 minute max"); + } return true; } }); @@ -184,11 +193,11 @@ public class Bot extends PircBot { return false; } - final IndividualTopic topic = - new IndividualTopic(message.replaceFirst("#", "") - .trim()); + final IndividualTopic topic = new IndividualTopic(message + .replaceFirst("#", "").trim()); Bot.this.review.begin(topic); Bot.this.sendMessage("Sujet individuel : " + topic.getTitle()); + Bot.this.sendMessage("% quand vous avez fini vous le dites par % fini"); return true; } }); @@ -208,15 +217,14 @@ public class Bot extends PircBot { return true; } - final Collection participants = - Bot.this.review.getParticipants(); - final Collection currentParticipants = - topic.getParticipants(); + final Collection participants = Bot.this.review + .getParticipants(); + final Collection currentParticipants = topic + .getParticipants(); @SuppressWarnings("unchecked") - final Collection missing = - CollectionUtils.subtract(participants, - currentParticipants); + final Collection missing = CollectionUtils.subtract( + participants, currentParticipants); if (missing.isEmpty()) { Bot.this.sendMessage("Aucun participant manquant \\o/"); return true; diff --git a/src/main/java/fr/imirhil/april/hebdobot/statusnet/IdentiCaApi.java b/src/main/java/fr/imirhil/april/hebdobot/statusnet/IdentiCaApi.java deleted file mode 100644 index e2e96b3..0000000 --- a/src/main/java/fr/imirhil/april/hebdobot/statusnet/IdentiCaApi.java +++ /dev/null @@ -1,31 +0,0 @@ -package fr.imirhil.april.hebdobot.statusnet; - -import org.scribe.builder.api.DefaultApi10a; -import org.scribe.model.Token; - -public class IdentiCaApi extends DefaultApi10a { - private static final String IDENTI_CA_OAUTH_API_URL = - "https://identi.ca/api/oauth"; - private static final String IDENTI_CA_OAUTH_API_REQUEST_TOKEN_URL = - IDENTI_CA_OAUTH_API_URL + "/request_token"; - private static final String IDENTI_CA_OAUTH_API_ACCESS_TOKEN_URL = - IDENTI_CA_OAUTH_API_URL + "/access_token"; - private static final String IDENTI_CA_OAUTH_API_AUTHORIZE_URL = - IDENTI_CA_OAUTH_API_URL + "/authorize?oauth_token=%s"; - - @Override - public String getRequestTokenEndpoint() { - return IDENTI_CA_OAUTH_API_REQUEST_TOKEN_URL; - } - - @Override - public String getAccessTokenEndpoint() { - return IDENTI_CA_OAUTH_API_ACCESS_TOKEN_URL; - } - - @Override - public String getAuthorizationUrl(final Token requestToken) { - return String.format(IDENTI_CA_OAUTH_API_AUTHORIZE_URL, - requestToken.getToken()); - } -} diff --git a/src/main/java/fr/imirhil/april/hebdobot/statusnet/IdentiCaClient.java b/src/main/java/fr/imirhil/april/hebdobot/statusnet/IdentiCaClient.java deleted file mode 100644 index 8accd19..0000000 --- a/src/main/java/fr/imirhil/april/hebdobot/statusnet/IdentiCaClient.java +++ /dev/null @@ -1,21 +0,0 @@ -package fr.imirhil.april.hebdobot.statusnet; - - -public class IdentiCaClient extends StatusNetClient { - private static final Class API_CLASS = IdentiCaApi.class; - private static final String IDENTICA_API_URL = "https://identi.ca/api"; - - public IdentiCaClient(final String apiKey, final String apiSecret, - final String tokenKey, final String tokenSecret) { - super(API_CLASS, apiKey, apiSecret, tokenKey, tokenSecret); - } - - public static void register(final String apiKey, final String apiSecret) { - StatusNetClient.register(API_CLASS, apiKey, apiSecret); - } - - @Override - protected String getApiUrl() { - return IDENTICA_API_URL; - } -} diff --git a/src/main/java/fr/imirhil/april/hebdobot/statusnet/StatusNetClient.java b/src/main/java/fr/imirhil/april/hebdobot/statusnet/StatusNetClient.java deleted file mode 100644 index 757cfe7..0000000 --- a/src/main/java/fr/imirhil/april/hebdobot/statusnet/StatusNetClient.java +++ /dev/null @@ -1,56 +0,0 @@ -package fr.imirhil.april.hebdobot.statusnet; - -import java.util.Scanner; - -import org.scribe.builder.ServiceBuilder; -import org.scribe.builder.api.Api; -import org.scribe.model.OAuthRequest; -import org.scribe.model.Token; -import org.scribe.model.Verb; -import org.scribe.model.Verifier; -import org.scribe.oauth.OAuthService; - -public abstract class StatusNetClient { - private final OAuthService service; - private final Token token; - - public StatusNetClient(final Class apiClass, - final String apiKey, final String apiSecret, final String tokenKey, - final String tokenSecret) { - this.service = getService(apiClass, apiKey, apiSecret); - this.token = new Token(tokenKey, tokenSecret); - } - - private static OAuthService getService(final Class apiClass, - final String apiKey, final String apiSecret) { - return new ServiceBuilder().provider(apiClass).apiKey(apiKey) - .apiSecret(apiSecret).build(); - } - - public static void register(final Class apiClass, - final String apiKey, final String apiSecret) { - final OAuthService service = getService(apiClass, apiKey, apiSecret); - final Token requestToken = service.getRequestToken(); - System.out.println(service.getAuthorizationUrl(requestToken)); - System.out.print(">>"); - final Scanner scanner = new Scanner(System.in); - try { - final Verifier verifier = new Verifier(scanner.nextLine()); - final Token token = service.getAccessToken(requestToken, verifier); - System.out.println(token); - } finally { - scanner.close(); - } - } - - public void post(final String message) { - final OAuthRequest request = - new OAuthRequest(Verb.POST, this.getApiUrl() - + "/statuses/update.json"); - request.addBodyParameter("status", message); - this.service.signRequest(this.token, request); - request.send(); - } - - protected abstract String getApiUrl(); -} diff --git a/src/test/java/fr/imirhil/april/hebdobot/irc/BotTest.java b/src/test/java/fr/imirhil/april/hebdobot/irc/BotTest.java index 162ac5c..998e0e5 100644 --- a/src/test/java/fr/imirhil/april/hebdobot/irc/BotTest.java +++ b/src/test/java/fr/imirhil/april/hebdobot/irc/BotTest.java @@ -28,10 +28,8 @@ public class BotTest implements ReviewListener { } @Override - public void - onMessage(final String channel, final String sender, - final String login, final String hostname, - final String message) { + public void onMessage(final String channel, final String sender, + final String login, final String hostname, final String message) { super.onMessage(channel, sender, login, hostname, message); } } @@ -41,17 +39,19 @@ public class BotTest implements ReviewListener { final Bot bot = new BotMock(); bot.add(this); - final InputStream is = - BotTest.class - .getResourceAsStream("/fr/imirhil/april/hebdobot/review.log"); + final InputStream is = BotTest.class + .getResourceAsStream("/fr/imirhil/april/hebdobot/review.log"); + if (is == null) { + return; + } try { final Reader isr = new InputStreamReader(is); try { final BufferedReader isbr = new BufferedReader(isr); try { String line; - final Pattern pattern = - Pattern.compile(".*\\s+<([^>]+)>\\s+(.*)"); + final Pattern pattern = Pattern + .compile(".*\\s+<([^>]+)>\\s+(.*)"); while ((line = isbr.readLine()) != null) { final Matcher matcher = pattern.matcher(line); if (matcher.matches()) { @@ -74,8 +74,8 @@ public class BotTest implements ReviewListener { @Override public void onEnd(final Review review) { try { - final String date = - ISODateTimeFormat.basicDate().print(new DateTime()); + final String date = ISODateTimeFormat.basicDate().print( + new DateTime()); final String text = review.toString(); final File file = new File("target/" + date + "_revue.txt"); FileUtils.writeStringToFile(file, text); diff --git a/src/test/resources/fr/imirhil/april/hebdobot/review.log b/src/test/resources/fr/imirhil/april/hebdobot/review.log deleted file mode 100644 index b203896..0000000 --- a/src/test/resources/fr/imirhil/april/hebdobot/review.log +++ /dev/null @@ -1,166 +0,0 @@ -2011-09-02 12:00:36 !debut -2011-09-02 12:00:36 % rappel : toute ligne commençant par % ne sera considérée comme un commentaire et non prise en compte dans la synthèse -2011-09-02 12:00:36 # 1/ Actions passées ou en cours % quand vous avez fini vous le dites par -2011-09-02 12:00:36 % fini -2011-09-02 12:00:55 * coinpan (500c6ecb@gateway/web/freenode/ip.80.12.110.203) a rejoint #april -2011-09-02 12:00:59 coin -2011-09-02 12:01:03 <_PoLuX_> Institutionnel : travail sur consultation cloud -2011-09-02 12:01:10 % coinpan : pile à temps, on démarre :) -2011-09-02 12:01:10 cloud : fin de la réponse à la consultation européenne -2011-09-02 12:01:15 <_PoLuX_> Institutionnel : remarques sur tv connectée -2011-09-02 12:01:19 cloud note en cours -2011-09-02 12:01:24 commande cartes de visites pour _PoLuX_ -2011-09-02 12:01:27 Initiatives Candidats.fr: amélioration de la plate-forme -2011-09-02 12:01:34 Suivi achat portable Jeanne -2011-09-02 12:01:34 cloud : mise en ligne de la consultation -2011-09-02 12:01:37 dépot chèque à la banque -2011-09-02 12:01:41 cloud : finalisation réponse consultation européenne, envoi, mise en ligne de la réponse sur le site de l'April -2011-09-02 12:01:42 Création d'un compte SVN pour galilea -2011-09-02 12:01:46 Divers relectures -2011-09-02 12:01:48 <_PoLuX_> Suivi divers en trésorerie -2011-09-02 12:01:54 cloud : remerciement des participants -2011-09-02 12:01:55 traductions : relayé l'appel à trad de Simon Descarpentries (livre Eloquent Javascript) -2011-09-02 12:01:56 TV connectée : suite préparation réponse de l'April -2011-09-02 12:01:58 %fini -2011-09-02 12:02:11 traductions : publié traduction relue (déclaration d'utilisation de LL) -2011-09-02 12:02:16 %oups je suis en retard -2011-09-02 12:02:18 agenda 2020 : bilan en cours 2012 -2011-09-02 12:02:25 <_PoLuX_> Entretient avec Antoine Chao + CR -2011-09-02 12:02:26 Formats ouverts : préparation de l'actu sur la généralisation des standards ouverts dans l'administration -2011-09-02 12:02:32 prise de contact avec nouveau fournisseur poru les t-shirts -2011-09-02 12:02:33 réu dossier instit/réunion d'équipe -2011-09-02 12:02:35 % teymour : on en est encore aux activités semaine passée -2011-09-02 12:02:38 <_PoLuX_> Relances diverses sur projet de guide libreasso -2011-09-02 12:02:42 format ouverts push des infos -2011-09-02 12:02:42 pt déj dossiers institutionnels -2011-09-02 12:02:46 traductions : rédaction d'une niouze pour la publication de nouvelles trad + demande de publication -2011-09-02 12:02:48 Réunion dossiers institutionnels / point d'équipe -2011-09-02 12:02:49 appel à particpation pour la braderie de lille -2011-09-02 12:02:53 %fini -2011-09-02 12:02:57 rapport d'étonnement 1 mois de stage -2011-09-02 12:02:58 RPVA rdv ministère de la justice + récupération d'infos -2011-09-02 12:02:59 crétaion page wiki braderie de lille -2011-09-02 12:03:06 <_PoLuX_> Préparation du stand pour la braprendre rdv avec le conseiller credit mut derie de lille -2011-09-02 12:03:07 %fini -2011-09-02 12:03:09 entretien journaliste sur Hadopi -2011-09-02 12:03:18 <_PoLuX_> Suivi divers pour le CA -2011-09-02 12:03:19 Loop suiv et correction du draft de _PoluX_ -2011-09-02 12:03:22 petit dèj institutionnel -2011-09-02 12:03:26 examen compétence hadopi sur accès aux info essentielles d'interop -2011-09-02 12:03:31 petit déjeuner point d'équipe -2011-09-02 12:03:34 envoi du courriel Loop au CA en cours -2011-09-02 12:03:35 <_PoLuX_> Proposition de lettre de soutien au loop -2011-09-02 12:03:39 %fini -2011-09-02 12:04:00 discussions sur le bilan France Numérique 2012 et réponse à la consultation france numérique 2020 -2011-09-02 12:04:02 mise a jour bilan financier des rmll -2011-09-02 12:04:14 suivi reprise des travaux parlementaires (et réponses aux QE) -2011-09-02 12:04:23 routing d'un appel journaliste RFI sur HADOPI vers axx_ de LQDN -2011-09-02 12:04:23 <_PoLuX_> Participation au petit dej institutionnel -2011-09-02 12:04:27 commabde d'affiches et catalibre pour le stand de la braderie de lille -2011-09-02 12:04:41 % teymour : c'était Clare ? -2011-09-02 12:04:49 <_PoLuX_> % fini -2011-09-02 12:05:10 %janchou oui elle m'a rappelé en fin de semaine derenière. Tu l'as rajoutée dans les contacts presse ou il faut que je le fasse ? -2011-09-02 12:05:21 relecture Cloud Computing -2011-09-02 12:05:41 % teymour : je m'en occupe (je l'ai vue mardi) -2011-09-02 12:05:42 prise de rdv avec le conseiller bancaire -2011-09-02 12:05:59 % janchou galilea pour info, on m'a fait des compliments sur le draft de note sur le cloud ce matin -2011-09-02 12:06:20 %teymour :) -2011-09-02 12:06:30 %janchou cool pour Clare, je pensais qu'elle avait laché l'affaire avec nous pour son sujet -2011-09-02 12:06:36 gestion relance 1er septembre -2011-09-02 12:06:45 commande d'un livre sur Drupal chez Eyrolles ^^ -2011-09-02 12:06:46 %fini -2011-09-02 12:06:48 gestion radiation 1er septembre -2011-09-02 12:06:52 % fini -2011-09-02 12:07:10 mise a jour lettre interne -2011-09-02 12:07:29 % fini -2011-09-02 12:07:39 mise à jour lettre interme -2011-09-02 12:07:42 % fini pour de vrai -2011-09-02 12:07:53 % fini -2011-09-02 12:08:13 % on va passer à la suite : Actions à venir -2011-09-02 12:08:13 # 2/ Actions à venir -2011-09-02 12:08:13 % quand vous avez fini vous le dites par % fini -2011-09-02 12:08:23 <_PoLuX_> Participation Braderie de Lille -2011-09-02 12:08:27 revue de presse -2011-09-02 12:08:29 cloud : relecture de la note -2011-09-02 12:08:30 cloud : note en cours -2011-09-02 12:08:31 Réception/configuration éventuelle portable Jeanne -2011-09-02 12:08:33 <_PoLuX_> Rédaction du guide libreasso -2011-09-02 12:08:38 4 questions à responsable de groupe -2011-09-02 12:08:43 <_PoLuX_> Relance des contributeurs pour libreasso -2011-09-02 12:08:46 Améliorations initiatives candidats.fr -2011-09-02 12:08:48 TV connectée : envoi de la réponse à l'appel à contribution -2011-09-02 12:08:49 mise à jour cahiers candidats. fr -2011-09-02 12:09:00 france numérique : suite discussion, préparation réponse -2011-09-02 12:09:01 agenda numérique 2020 -2011-09-02 12:09:11 marchés publics : conférence à l'AMIF -2011-09-02 12:09:11 <_PoLuX_> + Suivi divers et dépillage post-été -2011-09-02 12:09:14 traductions : faire une trad -2011-09-02 12:09:16 * xpo est parti (Quit: xpo) -2011-09-02 12:09:17 RPVA: voir pour les contacts -2011-09-02 12:09:18 pointage compta aout -2011-09-02 12:09:23 traductions : générer un nouveau listing de documents àtraduire -2011-09-02 12:09:25 %fini -2011-09-02 12:09:29 RPVA : suivi contacts -2011-09-02 12:09:33 Formation SVN Marie -2011-09-02 12:09:33 %fini -2011-09-02 12:09:34 RPVA contacts -2011-09-02 12:09:35 vente liée : diverses relances -2011-09-02 12:09:35 comprendre SVN -2011-09-02 12:09:35 %fini -2011-09-02 12:09:36 %fini pour de vrai -2011-09-02 12:09:44 Cloud relecture -2011-09-02 12:09:47 % galilea : impossible :) -2011-09-02 12:09:52 %fini -2011-09-02 12:09:52 % galilea bonne chance :) -2011-09-02 12:10:02 %/me aime les défis -2011-09-02 12:10:03 Marchés public, mettre en relation janchou avec Justice -2011-09-02 12:10:05 % l'espoir fait vivre -2011-09-02 12:10:10 suivi bounce aout et septembre -2011-09-02 12:10:18 ACTA : mise à jour sur le site de l'April -2011-09-02 12:10:23 suivi relance -2011-09-02 12:10:30 mettre nouveaux contacts dans dotproject -2011-09-02 12:10:45 Envoi lettre Loop -2011-09-02 12:10:56 contacter ppsj pour arret -2011-09-02 12:11:17 france numérique : envoyer commentaire sur le projet de consultation -2011-09-02 12:11:33 vente liée : finalisation / validation de la synthèse ? -2011-09-02 12:11:46 %fini -2011-09-02 12:11:48 % fini -2011-09-02 12:12:12 % teymour fini ? -2011-09-02 12:12:16 %fini -2011-09-02 12:12:27 % on va passer à la suite : Points de blocage -2011-09-02 12:12:27 ## 3/ Points de blocage existants ou levés cette semaine -2011-09-02 12:12:27 % si rien à dire vous dites %ras -2011-09-02 12:12:38 laptop : en cours de résolution -2011-09-02 12:12:49 %ras -2011-09-02 12:12:55 %ras -2011-09-02 12:12:56 prendre rdv avec le conseiller credit mut > réglé -2011-09-02 12:12:56 Débloqué bug javascript/json bloquant pour les initiatives -2011-09-02 12:13:08 %ras -2011-09-02 12:13:14 Recu confirmation livraison laptop -2011-09-02 12:13:16 %fini -2011-09-02 12:13:46 oubli de la braderie de lille, appel à participation tardif -2011-09-02 12:14:11 % on va passer à la suite : Points Forts et Points de Vigilance de la réunion -2011-09-02 12:14:12 ## 4/ Points forts de la réunion -2011-09-02 12:14:12 % 1 mn max -2011-09-02 12:14:12 % si rien à dire vous dites %ras -2011-09-02 12:14:25 toujours aussi rapide et motivant -2011-09-02 12:14:30 beaucoup de présents, effet rentrée ? -2011-09-02 12:14:41 beaucoup de boulot aussi -2011-09-02 12:14:44 * _bibi (~obibi@office.bearstech.com) a rejoint #april -2011-09-02 12:15:02 du boulot on s'ennuie pas ! -2011-09-02 12:15:07 %fini -2011-09-02 12:15:16 Retour de plein de gens -2011-09-02 12:15:22 * _bibi (~obibi@office.bearstech.com) a quitté #april -2011-09-02 12:15:26 %trop bien le stage :) -2011-09-02 12:15:29 % on va passer à la suite : Points de Vigilance de la réunion -2011-09-02 12:15:29 ## 5/ Points de vigilance de la réunion -2011-09-02 12:15:29 % si rien à dire vous dites -2011-09-02 12:15:29 %ras % 1 mn max -2011-09-02 12:15:36 %ras -2011-09-02 12:15:48 %ras -2011-09-02 12:16:02 % galilea tu dira plus ça quand tu aura ouvert svn :P -2011-09-02 12:16:05 % galilea : oui, tu apprends plein de trucs techniques... /o\ -2011-09-02 12:16:26 %ras -2011-09-02 12:16:26 % Fin de la revue hebdomadaire, merci à vous -2011-09-02 12:16:26 % Pensez à noter votre bénévalo : http://www.april.org/my?action=benevalo -2011-09-02 12:16:26 !fin