Exemple #1
0
 def __init__(self, skapp):
     self.app = skapp
     self.parent = skapp.window
     self.history = HistoryManager(skapp.db, "insert_history",
         skapp.opt.get_int("max_history"), True)
     self.hmodel = gtk.ListStore(gobject.TYPE_STRING)
     self._load_interface()
Exemple #2
0
 def __init__(self, skapp):
     self.app = skapp
     self.parent = skapp.window
     self.curpage = self.app.curpage
     self.history = HistoryManager(skapp.db, "rename_history",
         skapp.opt.get_int("max_history"), True)
     self.hmodel = gtk.ListStore(gobject.TYPE_STRING)
     self.page_name = None
     self.create_redirect = skapp.opt.get_bool("rename_create_redirect")
     self._load_interface()
class CommissionMembership(models.Model, Jsonify):
    current = models.BooleanField(default=True)
    creation_datetime = models.DateTimeField(default=datetime.now)
    role = models.CharField(max_length=1337)
    role_en = models.CharField(max_length=1337)
    commission = models.ForeignKey("Commission")
    deputy = models.ForeignKey("Deputy")

    with_history = models.Manager()
    objects = HistoryManager()
class Deputy(models.Model, Jsonify):
    current = models.BooleanField(default=True)
    creation_datetime = models.DateTimeField(default=datetime.now)
    full_name = models.CharField(max_length=1337)
    first_name = models.CharField(max_length=1337)
    last_name = models.CharField(max_length=1337)
    sex = models.CharField(max_length=1337, null=True)
    emails = ListField()
    party = models.ForeignKey('Party')
    url = models.CharField(max_length=1337)
    websites = ListField()
    lachambre_id = models.CharField(max_length=1337)
    language = models.CharField(max_length=1337, null=True)
    cv = DictField()

    with_history = models.Manager()
    objects = HistoryManager()

    #commissions = ListField(EmbeddedModelField('CommissionMembership'))

    #documents_principal_author_url = models.URLField()
    #documents_principal_author_list = ListField(EmbeddedModelField('Document'))
    #documents_principal_signator_url = models.URLField()
    #documents_principal_signator_list = ListField(EmbeddedModelField('Document'))

    #documents_next_author_url = models.URLField()
    #documents_next_author_list = ListField(EmbeddedModelField('Document'))
    #documents_next_signator_url = models.URLField()
    #documents_next_signator_list = ListField(EmbeddedModelField('Document'))

    #documents_rapporter_url = models.URLField()
    #documents_rapporter_list = ListField(EmbeddedModelField('Document'))

    #questions_written_url = models.URLField()
    #questions_written_list = ListField(EmbeddedModelField('WrittenQuestion'))

    #questions_oral_plenary_url = models.URLField()
    #questions_oral_plenary_list = ListField(EmbeddedModelField('Question'))

    #questions_oral_commission_url = models.URLField()
    #questions_oral_commission_list = ListField(EmbeddedModelField('Question'))

    def __unicode__(self):
        return '%s - %s' % (self.full_name, self.party)

    class Meta:
        ordering = ["lachambre_id"]

    class MongoMeta:
        indexes = [[("lachambre_id", 1)]]

    def get_url(self):
        return LACHAMBRE_PREFIX + self.url if not self.url.startswith(
            "http") else self.url
class AnnualReport(models.Model, Jsonify):
    current = models.BooleanField(default=True)
    creation_datetime = models.DateTimeField(default=datetime.now)
    title = DictField()
    date = models.CharField(max_length=1337)
    law_and_article = DictField()
    periodicity = models.CharField(max_length=1337)
    pdf_url = models.URLField()

    with_history = models.Manager()
    objects = HistoryManager()
Exemple #6
0
    def endElement(self, name):
        if self._state == SkedContentHandler.IN_CONFIG_OPTION \
        and name == "option":
            if self.import_config:
                self._opt.set_str(self._tmp_name, self._tmp_data)
            self._tmp_name = None
            self._tmp_data = None
            self._state = SkedContentHandler.IN_CONFIG
        elif self._state == SkedContentHandler.IN_CONFIG \
        and name == "configuration":
            if self.import_config:
                self._opt.save()
            self._state = SkedContentHandler.IN_SKEDDATA

        elif self._state == SkedContentHandler.IN_HISTORY_ITEM \
        and name == "item":
            self._tmp_hist_items.append(self._tmp_data)
            self._tmp_data = None
            self._state = SkedContentHandler.IN_HISTORY
        elif self._state == SkedContentHandler.IN_HISTORY \
        and name == "history":
            if self.import_history:
                hist = HistoryManager(self._db, self._tmp_name.encode("utf-8"))
                hist.set_items(self._tmp_hist_items)
                hist.save()
            self._tmp_name = None
            self._tmp_hist_items = None
            self._state = SkedContentHandler.IN_SKEDDATA
        elif self._state == SkedContentHandler.IN_ENTRY \
        and name == "entry":
            if self.import_pages:
                self._pm.save(Page(self._tmp_name, self._tmp_data), False)
            self._tmp_name = None
            self._tmp_data = None
            self._state = SkedContentHandler.IN_SKEDDATA
        elif self._state == SkedContentHandler.IN_SKEDDATA \
        and name == "skeddata":
            self._state = SkedContentHandler.DONE
        else:
            raise DataFormatError
Exemple #7
0
class RenamePageDialog(BaseDialog):
    
    def __init__(self, skapp):
        self.app = skapp
        self.parent = skapp.window
        self.curpage = self.app.curpage
        self.history = HistoryManager(skapp.db, "rename_history",
            skapp.opt.get_int("max_history"), True)
        self.hmodel = gtk.ListStore(gobject.TYPE_STRING)
        self.page_name = None
        self.create_redirect = skapp.opt.get_bool("rename_create_redirect")
        self._load_interface()

    def _load_interface(self):
        self.ui_init("rename-page-dialog.ui")
        self.dlg = self.ui.get_object("dlgRenamePage")
        self.lbCurrentName = self.ui.get_object("lbCurrentName")
        self.cbCreateRedirect = self.ui.get_object("cbCreateRedirect")
        self.cbeNewName = self.ui.get_object("cbeNewName")
        self.txNewName = self.cbeNewName.child
        self.cbeNewName.set_model(self.hmodel)
        self.cbeNewName.set_text_column(0)
        self.cbCreateRedirect.set_active(self.create_redirect)

    def run(self):
        self.hmodel.clear()
        for item in self.history.get_items():
            self.hmodel.append([item])
        self.lbCurrentName.set_text(self.curpage.name)
        self.txNewName.set_text(self.curpage.name)
        self.dlg.set_transient_for(self.parent)
        self.dlg.set_modal(True)
        while True:
            val = self.dlg.run()
            if val == gtk.RESPONSE_OK:
                newpagename = self.txNewName.get_text().decode("utf-8")
                newpage = self.app.pm.load(newpagename)
                if newpage == None or \
                newpage.normalized_name == self.curpage.normalized_name:
                    self.dlg.destroy()
                    self.history.add(newpagename)
                    self.history.save()
                    self.page_name = newpagename
                    self.create_redirect = self.cbCreateRedirect.get_active()
                    self.app.opt.set_bool("rename_create_redirect",
                        self.create_redirect)
                    return newpagename
                else:
                    error_dialog(self.dlg, u"Page already exists.")
            elif val == gtk.RESPONSE_CANCEL:
                self.dlg.destroy()
                self.history.save()
                return None
        return None
class Party(models.Model, Jsonify):
    current = models.BooleanField(default=True)
    creation_datetime = models.DateTimeField(default=datetime.now)
    name = models.CharField(max_length=1337)
    url = models.URLField()

    with_history = models.Manager()
    objects = HistoryManager()

    def __unicode__(self):
        return self.name

    def get_url(self):
        return LACHAMBRE_PREFIX + self.url if not self.url.startswith(
            "http") else self.url
class Document(models.Model, Jsonify):
    current = models.BooleanField(default=True)
    creation_datetime = models.DateTimeField(default=datetime.now)
    title = DictField()
    url = models.CharField(max_length=1337)
    full_details_url = models.CharField(max_length=1337)
    status_chambre = DictField()
    status_senat = DictField()
    deposition_date = models.CharField(max_length=1337, null=True)
    constitution_article = DictField()
    in_charge_commissions = ListField(
        EmbeddedModelField('InChargeCommissions'))
    plenaries = ListField(EmbeddedModelField('DocumentPlenary'))
    senat_plenaries = ListField(EmbeddedModelField('DocumentSenatPlenary'))
    timeline = ListField(EmbeddedModelField('DocumentTimeLine'))
    eurovoc_main_descriptor = DictField()
    eurovoc_descriptors = DictField()
    eurovoc_candidats_descriptors = DictField()
    keywords = DictField()
    lachambre_id = models.IntegerField()
    analysis = EmbeddedModelField('Analysis', null=True)
    document_chambre = EmbeddedModelField('DocumentChambre', null=True)
    document_senat = EmbeddedModelField('DocumentSenat', null=True)
    vote_date = models.CharField(max_length=1337)
    vote_senat_date = models.CharField(max_length=1337)
    law_date = models.CharField(max_length=1337)
    moniteur_number = models.CharField(max_length=1337)
    moniteur_date = models.CharField(max_length=1337)
    main_docs = DictField()
    candidature_vote_date = models.CharField(max_length=1337)
    done = models.BooleanField(default=False)

    with_history = models.Manager()
    objects = HistoryManager()

    def __unicode__(self):
        return "%s - %s" % (self.lachambre_id, self.title["fr"])

    def get_url(self):
        return LACHAMBRE_PREFIX + self.url if not self.url.startswith(
            "http") else self.url

    class Meta:
        ordering = ["-lachambre_id"]

    class MongoMeta:
        indexes = [[("lachambre_id", -1)]]
Exemple #10
0
class InsertPageTextDialog(BaseDialog):
    
    def __init__(self, skapp):
        self.app = skapp
        self.parent = skapp.window
        self.history = HistoryManager(skapp.db, "insert_history",
            skapp.opt.get_int("max_history"), True)
        self.hmodel = gtk.ListStore(gobject.TYPE_STRING)
        self._load_interface()

    def _load_interface(self):
        self.ui_init("insert-page-dialog.ui")
        self.dlg = self.ui.get_object("dlgInsertPageText")
        self.cbePageName = self.ui.get_object("cbePageName")
        self.txPageName = self.cbePageName.child
        self.cbePageName.set_model(self.hmodel)
        self.cbePageName.set_text_column(0)

    def run(self):
        self.hmodel.clear()
        for item in self.history.get_items():
            self.hmodel.append([item])
        self.dlg.set_transient_for(self.parent)
        self.dlg.set_modal(True)
        while True:
            val = self.dlg.run()
            if val == gtk.RESPONSE_OK:
                page = self.txPageName.get_text().decode("utf-8")
                if self.app.pm.exists(page):
                    self.dlg.destroy()
                    self.history.add(page)
                    self.history.save()
                    return page
                else:
                    error_dialog(self.dlg, u"Page not found.")
            elif val == gtk.RESPONSE_CANCEL:
                self.dlg.destroy()
                self.history.save()
                return None
        return None
class Commission(models.Model, Jsonify):
    current = models.BooleanField(default=True)
    creation_datetime = models.DateTimeField(default=datetime.now)
    lachambre_id = models.IntegerField()
    name = DictField()
    full_name = DictField()
    url = models.URLField()
    type = DictField()
    deputies = ListField(models.ForeignKey(CommissionMembership))
    seats = DictField()

    with_history = models.Manager()
    objects = HistoryManager()

    def get_url(self):
        return LACHAMBRE_PREFIX + self.url if not self.url.startswith(
            "http") else self.url

    class Meta:
        ordering = ["lachambre_id"]

    class MongoMeta:
        indexes = [[("lachambre_id", 1)]]
class WrittenQuestion(models.Model, Jsonify):
    current = models.BooleanField(default=True)
    creation_datetime = models.DateTimeField(default=datetime.now)
    title = DictField()
    departement = DictField()
    sub_departement = DictField()
    author = models.CharField(max_length=1337)
    deposition_date = models.CharField(max_length=1337)
    delay_date = models.CharField(max_length=1337, null=True)
    eurovoc_descriptors = DictField()
    eurovoc_candidats_descriptors = DictField()
    keywords = DictField()
    url = models.URLField()
    lachambre_id = models.CharField(max_length=1337)
    language = models.CharField(max_length=1337)
    status = DictField()
    question_status = DictField()
    publication_date = models.CharField(max_length=1337)
    question = DictField()
    answer = DictField()
    publication_reponse_pdf_url = models.CharField(max_length=1337)
    publication_question_pdf_url = models.CharField(max_length=1337)
    publication_reponse = models.CharField(max_length=1337, null=True)
    publication_question = models.CharField(max_length=1337, null=True)

    with_history = models.Manager()
    objects = HistoryManager()

    def get_url(self):
        return LACHAMBRE_PREFIX + self.url if not self.url.startswith(
            "http") else self.url

    class Meta:
        ordering = ["lachambre_id"]

    class MongoMeta:
        indexes = [[("lachambre_id", 1)]]
Exemple #13
0
        # make sure all subscripts exist
        log('## Looking for subscripts')
        try:
            subs = util.find_subscripts(args.sql_file, args.dbms)
        except IOError, e:
            errors = True
            log('ERROR: One of the subscripts does not exist. Opening it threw and exception: ', logging.ERROR)
            log(e, logging.ERROR)
            sys.exit(EXIT_FAIL)

        log('Found %d subscripts' % (len(subs),))

        #####
        # Check execution history and subscripts
        hist = HistoryManager(args.sql_file, args.database, args.username, path=args.recdir)
        log('\n## Checking execution record ##')
        status = hist.status(args.sql_file, subs)
        if status == HistoryManager.DIFF:
            log('# Some of the files have changed since last run.')
            diff = hist.diff(args.sql_file)
            sub_diff = hist.diff_all(subs)
            log_script_changes(diff, sub_diff)
        elif status == HistoryManager.NO_DIFF:
            log('# The main script and subscripts have not changed since last run.')
        elif status == HistoryManager.NEW:
            log('# This script has not been executed yet.')

        #####
        # Try connecting to DB
        try:
Exemple #14
0
    UploadTooManyFilesException, handle_exception

import utils

UPLOAD_FOLDER = '/tmp/filebin/usercontent'

app = Flask(__name__)

app.secret_key = 'i should probably change this'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
app.config['MAX_FILES_PER_UPLOAD'] = 10
app.config['MAX_CONTENT_LENGTH'] = 64 * 1024 * 1024
app.config['FILESTORE_EXPIRATION_TIME_SECONDS'] = 10 * 60  # ten minutes

filestore = FileStore(app)
history = HistoryManager(filestore)


@app.template_filter('formatsize')
def size_filter(size):
    return utils.sizeof_fmt(size)


@app.template_filter('formatseconds')
def timestamp_filter(seconds):
    if seconds < 10:
        return '0{}'.format(seconds)

    return seconds