diff --git a/client/dist/css/app.1265c9f1.css b/client/dist/css/app.1265c9f1.css
deleted file mode 100644
index da42dfb9..00000000
--- a/client/dist/css/app.1265c9f1.css
+++ /dev/null
@@ -1 +0,0 @@
-.groupMenu[data-v-526ddfcd]{position:absolute;top:40px;width:100%;z-index:2}.badge[data-v-526ddfcd]{cursor:pointer}#tabss ul{-webkit-box-pack:space-evenly;-ms-flex-pack:space-evenly;justify-content:space-evenly;background:linear-gradient(#fff,#fff 22px,#007bff,#fff 23px,#fff)}#tabss ul .nav-link{background-color:#fff}#tabss ul .nav-link.active{background-color:#007bff}#eventDetail .modal-body{padding:0}#eventDetail .card{margin-left:-5px}#eventDetail .badge{margin-left:.1rem}.card-columns .card[data-v-f79fd7b2]{margin-top:.3em;margin-bottom:0}.card-img[data-v-f79fd7b2]{max-height:180px;-o-object-fit:cover;object-fit:cover}.badge[data-v-f79fd7b2]{margin-left:.1rem}#calendar{margin-bottom:0;margin-top:.3em}.card-columns{-webkit-column-count:1;column-count:1;-webkit-column-gap:.3em;column-gap:.3em}@media (min-width:576px){.container{max-width:none}.card-columns{-webkit-column-count:2;column-count:2;-webkit-column-gap:.3em;column-gap:.3em}}@media (min-width:950px){.container{max-width:1400px}.card-columns{-webkit-column-count:3;column-count:3;-webkit-column-gap:.3em;column-gap:.3em}}.item{-webkit-transition:all .2s;transition:all .2s;display:inline-block;width:100%}.list-enter,.list-leave-to{opacity:0;-webkit-transform:translateY(30px);transform:translateY(30px)}.list-leave-active{position:absolute;top:0;width:0;left:0;height:0;z-index:-10}#footer{position:absolute;width:100%;bottom:0}#search,#search ul{-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}body,html{scrollbar-face-color:#313543;scrollbar-track-color:rgba(0,0,0,.1);font-family:Lato,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:1.1em;color:#2c3e50;background:#000}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:#313543;border:0 none #fff;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#353a49}::-webkit-scrollbar-thumb:active{background:#313543}::-webkit-scrollbar-track{border:0 none #fff;border-radius:6px;background:rgba(0,0,0,.1)}::-webkit-scrollbar-track:active,::-webkit-scrollbar-track:hover{background:#282c37}::-webkit-scrollbar-corner{background:transparent}
\ No newline at end of file
diff --git a/client/dist/js/app.85eb2b80.js b/client/dist/js/app.85eb2b80.js
deleted file mode 100644
index 229f481d..00000000
--- a/client/dist/js/app.85eb2b80.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(function(e){function t(t){for(var a,r,o=t[0],c=t[1],l=t[2],d=0,p=[];d Con i feed rss utilizzi un\'apposita applicazione per ricevere aggiornamenti dai siti che più ti interessano. È un buon metodo per seguire anche molti siti in modo molto rapido, senza necessità di creare un account o altre complicazioni. Se hai Android, ti consigliamo Flym o Feeder
\n Per iPhone/iPad puoi usare Feed4U
\n Per il computer fisso/portatile consigliamo Feedbro, da installare all\'interno di Firefox o di Chrome e compatibile con tutti i principali sistemi operativi.
Questo è un dono per voi, non possiamo più vedervi usare le piattaforme del capitalismo. Solo eventi non commerciali e ovviamente antifascisti, antisessisti, antirazzisti. \n
Prima di poter pubblicare dobbiamo approvare l'account, considera che dietro questo sito ci sono delle persone di\n carne e sangue, scrivici quindi due righe per farci capire che eventi vorresti pubblicare."};e.exports=t}).call(this,n("dd40")(e))},4678:function(e,t,n){var a={"./af":"2bfb","./af.js":"2bfb","./ar":"8e73","./ar-dz":"a356","./ar-dz.js":"a356","./ar-kw":"423e","./ar-kw.js":"423e","./ar-ly":"1cfd","./ar-ly.js":"1cfd","./ar-ma":"0a84","./ar-ma.js":"0a84","./ar-sa":"8230","./ar-sa.js":"8230","./ar-tn":"6d83","./ar-tn.js":"6d83","./ar.js":"8e73","./az":"485c","./az.js":"485c","./be":"1fc1","./be.js":"1fc1","./bg":"84aa","./bg.js":"84aa","./bm":"a7fa","./bm.js":"a7fa","./bn":"9043","./bn.js":"9043","./bo":"d26a","./bo.js":"d26a","./br":"6887","./br.js":"6887","./bs":"2554","./bs.js":"2554","./ca":"d716","./ca.js":"d716","./cs":"3c0d","./cs.js":"3c0d","./cv":"03ec","./cv.js":"03ec","./cy":"9797","./cy.js":"9797","./da":"0f14","./da.js":"0f14","./de":"b469","./de-at":"b3eb","./de-at.js":"b3eb","./de-ch":"bb71","./de-ch.js":"bb71","./de.js":"b469","./dv":"598a","./dv.js":"598a","./el":"8d47","./el.js":"8d47","./en-au":"0e6b","./en-au.js":"0e6b","./en-ca":"3886","./en-ca.js":"3886","./en-gb":"39a6","./en-gb.js":"39a6","./en-ie":"e1d3","./en-ie.js":"e1d3","./en-il":"7333","./en-il.js":"7333","./en-nz":"6f50","./en-nz.js":"6f50","./eo":"65db","./eo.js":"65db","./es":"898b","./es-do":"0a3c","./es-do.js":"0a3c","./es-us":"55c9","./es-us.js":"55c9","./es.js":"898b","./et":"ec18","./et.js":"ec18","./eu":"0ff2","./eu.js":"0ff2","./fa":"8df4","./fa.js":"8df4","./fi":"81e9","./fi.js":"81e9","./fo":"0721","./fo.js":"0721","./fr":"9f26","./fr-ca":"d9f8","./fr-ca.js":"d9f8","./fr-ch":"0e49","./fr-ch.js":"0e49","./fr.js":"9f26","./fy":"7118","./fy.js":"7118","./gd":"f6b4","./gd.js":"f6b4","./gl":"8840","./gl.js":"8840","./gom-latn":"0caa","./gom-latn.js":"0caa","./gu":"e0c5","./gu.js":"e0c5","./he":"c7aa","./he.js":"c7aa","./hi":"dc4d","./hi.js":"dc4d","./hr":"4ba9","./hr.js":"4ba9","./hu":"5b14","./hu.js":"5b14","./hy-am":"d6b6","./hy-am.js":"d6b6","./id":"5038","./id.js":"5038","./is":"0558","./is.js":"0558","./it":"6e98","./it.js":"6e98","./ja":"079e","./ja.js":"079e","./jv":"b540","./jv.js":"b540","./ka":"201b","./ka.js":"201b","./kk":"6d79","./kk.js":"6d79","./km":"e81d","./km.js":"e81d","./kn":"3e92","./kn.js":"3e92","./ko":"22f8","./ko.js":"22f8","./ku":"2421","./ku.js":"2421","./ky":"9609","./ky.js":"9609","./lb":"440c","./lb.js":"440c","./lo":"b29d","./lo.js":"b29d","./lt":"26f9","./lt.js":"26f9","./lv":"b97c","./lv.js":"b97c","./me":"293c","./me.js":"293c","./mi":"688b","./mi.js":"688b","./mk":"6909","./mk.js":"6909","./ml":"02fb","./ml.js":"02fb","./mn":"958b","./mn.js":"958b","./mr":"39bd","./mr.js":"39bd","./ms":"ebe4","./ms-my":"6403","./ms-my.js":"6403","./ms.js":"ebe4","./mt":"1b45","./mt.js":"1b45","./my":"8689","./my.js":"8689","./nb":"6ce3","./nb.js":"6ce3","./ne":"3a39","./ne.js":"3a39","./nl":"facd","./nl-be":"db29","./nl-be.js":"db29","./nl.js":"facd","./nn":"b84c","./nn.js":"b84c","./pa-in":"f3ff","./pa-in.js":"f3ff","./pl":"8d57","./pl.js":"8d57","./pt":"f260","./pt-br":"d2d4","./pt-br.js":"d2d4","./pt.js":"f260","./ro":"972c","./ro.js":"972c","./ru":"957c","./ru.js":"957c","./sd":"6784","./sd.js":"6784","./se":"ffff","./se.js":"ffff","./si":"eda5","./si.js":"eda5","./sk":"7be6","./sk.js":"7be6","./sl":"8155","./sl.js":"8155","./sq":"c8f3","./sq.js":"c8f3","./sr":"cf1e","./sr-cyrl":"13e9","./sr-cyrl.js":"13e9","./sr.js":"cf1e","./ss":"52bd","./ss.js":"52bd","./sv":"5fbd","./sv.js":"5fbd","./sw":"74dc","./sw.js":"74dc","./ta":"3de5","./ta.js":"3de5","./te":"5cbb","./te.js":"5cbb","./tet":"576c","./tet.js":"576c","./tg":"3b1b","./tg.js":"3b1b","./th":"10e8","./th.js":"10e8","./tl-ph":"0f38","./tl-ph.js":"0f38","./tlh":"cf75","./tlh.js":"cf75","./tr":"0e81","./tr.js":"0e81","./tzl":"cf51","./tzl.js":"cf51","./tzm":"c109","./tzm-latn":"b53d","./tzm-latn.js":"b53d","./tzm.js":"c109","./ug-cn":"6117","./ug-cn.js":"6117","./uk":"ada2","./uk.js":"ada2","./ur":"5294","./ur.js":"5294","./uz":"2e8c","./uz-latn":"010e","./uz-latn.js":"010e","./uz.js":"2e8c","./vi":"2921","./vi.js":"2921","./x-pseudo":"fd7e","./x-pseudo.js":"fd7e","./yo":"7f33","./yo.js":"7f33","./zh-cn":"5c3a","./zh-cn.js":"5c3a","./zh-hk":"49ab","./zh-hk.js":"49ab","./zh-tw":"90ea","./zh-tw.js":"90ea"};function i(e){var t=s(e);return n(t)}function s(e){var t=a[e];if(!(t+1)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t}i.keys=function(){return Object.keys(a)},i.resolve=s,e.exports=i,i.id="4678"},"56d7":function(e,t,n){"use strict";n.r(t);var a=n("cebc"),i=(n("cadf"),n("551c"),n("097d"),n("2b0e")),s=n("a925"),r=n("9f7b"),o=n("da28"),c=n.n(o),l=(n("d06d"),n("0874")),u=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{position:"relative"}},[n("b-input-group",[n("input",{directives:[{name:"model",rawName:"v-model",value:e.search,expression:"search"}],ref:"input",staticClass:"form-control",attrs:{type:"search",placeholder:e.placeholder,autocomplete:"off"},domProps:{value:e.search},on:{input:[function(t){t.target.composing||(e.search=t.target.value)},e.update],keydown:[function(t){return"button"in t||!e._k(t.keyCode,"backspace",void 0,t.key,void 0)?e.backspace(t):null},function(t){return"button"in t||!e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?(t.preventDefault(),e.up(t)):null},function(t){return"button"in t||!e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?(t.preventDefault(),e.down(t)):null},function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?e.hit(t):null},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;e.reset(!0)}],blur:function(t){e.focus=!1},focus:function(t){e.focus=!0}}})]),n("div",e._l(e.selectedLabel,function(t){return n("b-badge",{key:t,staticClass:"mr-1",on:{click:function(n){e.removeSelected(t)}}},[e._v(e._s(t))])}),1),n("b-list-group",{directives:[{name:"show",rawName:"v-show",value:e.showDropdown,expression:"showDropdown"}],staticClass:"groupMenu"},e._l(e.matched,function(t,a){return n("b-list-group-item",{key:a,class:{active:e.isActive(a)},attrs:{href:"#"},on:{mousedown:function(t){return t.preventDefault(),e.hit(t)},mousemove:function(t){e.setActive(a)}}},[e._t(e.templateName,[e._v(e._s(e.textField?t[e.textField]:t))])],2)}),1)],1)},d=[],p=(n("386d"),n("6762"),n("2fdb"),n("c5f6"),n("b6d0")),m=n.n(p),f={props:{value:{twoWay:!0,type:[String,Array,m.a],default:""},data:{type:Array},template:{type:String},templateName:{type:String,default:"default"},valueField:{type:String,default:null},textField:{type:String,default:null},showClear:{type:Boolean,default:!0},matchCase:{type:Boolean,default:!1},matchStart:{type:Boolean,default:!1},onHit:{type:Function,default:function(){this.reset()}},placeholder:{type:String},updateOnMatchOnly:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},maxMatch:{type:Number,default:4}},data:function(){return{focus:!1,noResults:!0,current:0,search:"",selected:[]}},watch:{value:function(e){console.log("dentro watch ",e),e?this.multiple?this.selected=e:this.search=e:(this.search="",this.multiple&&this.$emit("input",[]))}},computed:{showDropdown:function(){return console.log("dentro showDropdown ",this.focus,this.matched),this.focus},selectedValues:function(){var e=this;return this.selected.map(function(t){return e.valueField&&t[e.valueField]||t})},selectedLabel:function(){var e=this;return this.selected.map(function(t){return e.textField&&t[e.textField]||t})},matched:function(){var e=this;if(this.data)return this.data.filter(function(t){if(e.textField&&(t=t[e.textField]),e.multiple&&e.selectedLabel.includes(t))return!1;t=e.matchCase?t:t.toLowerCase();var n=e.matchCase?e.search:e.search.toLowerCase();return e.matchStart?0===t.indexOf(n):-1!==t.indexOf(n)}).slice(0,this.maxMatch)}},methods:{update:function(e){return this.multiple&&","===e.data?(this.search=this.search.substr(0,this.search.length-1),void this.hit(e)):(this.updateOnMatchOnly||this.multiple||this.$emit("input",this.search),this.focus=!0,this.matched.length?void(this.matched.length<=this.current&&(this.current=this.matched.length-1)):(this.focus=!1,void(this.current=0)))},backspace:function(){this.search||(console.log("backspace"),this.selected.splice(-1,1),this.$emit("input",this.selected.length?this.selectedValues:""))},reset:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];console.log("dentro reset ",close),this.search="",this.current=0,this.$refs.input.focus(),e?this.focus=!1:(this.selected=[],this.$emit("input",""))},setActive:function(e){this.current=e},isActive:function(e){return this.current===e},removeSelected:function(e){var t=this;this.selected=this.selected.filter(function(n){return(t.textField&&n[t.textField]||n)!==e}),this.$emit("input",this.selected.length?this.selectedValues:[])},hit:function(e){console.log(this),console.log("dentro matched ",this.current),e.preventDefault();var t="",n="";0!==this.matched.length&&this.focus?(n=this.matched[this.current],t=this.textField?n[this.textField]:n,console.log("sono qui dentro ",n,t)):(t=this.search,console.log("non matched ma solo scritto e invio!")),this.multiple?t&&(this.selected.push(t),this.search="",console.log("dentro hit",this.selectedValues),console.log(this.selected),this.$emit("input",this.selected),this.focus=!1):(console.log("sono qui dentro no multiple",t),this.$emit("input",t),this.current=0,this.focus=!1,this.search=t),this.$emit("enter")},up:function(){this.current>0&&this.current--},down:function(){this.current
\n Con i feed rss utilizzi un\'apposita applicazione per ricevere aggiornamenti dai siti che più ti interessano. \n È un buon metodo per seguire anche molti siti in modo molto rapido, senza necessità di creare un account o altre complicazioni.
\n\n Se hai Android, ti consigliamo Flym o Feeder
\n Per iPhone/iPad puoi usare Feed4U
\n Per il computer fisso/portatile consigliamo Feedbro, da installare all\'interno di Firefox o di Chrome e compatibile con tutti i principali sistemi operativi.
Con i feed rss utilizzi un'apposita applicazione per ricevere aggiornamenti dai siti che più ti interessano. È un buon metodo per seguire anche molti siti in modo molto rapido, senza necessità di creare un account o altre complicazioni.
\n\nSe hai Android, ti consigliamo Flym o Feeder
\n Per iPhone/iPad puoi usare Feed4U
\n Per il computer fisso/portatile consigliamo Feedbro, da installare all'interno di Firefox o di Chrome e compatibile con tutti i principali sistemi operativi.
, or missing
. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm)) {\n removeVnodes(parentElm, [oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n];\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. \n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for